본문 바로가기
카테고리 없음

WebView 만 실행되는 앱 만들기

by 찬찬2 2024. 7. 4.

웹뷰만 실행되는 앱을 만들기 위해서는 3 개의 파일을 수정해야 한다.

activity_main.xml, AndroidManifest.xml, MainActivity.kt 또는 java


1. 프로젝트 생성

File > New > New project 에서 "Empty Views Activity" 를 선택

** 만약 Empty Views Activity 가 아닌 Empty Activity 로 만들게되면 activity_main.xml 파일이 없다.

 

2. activity_main.xml 수정

app > res > layout

 

 

파일 클릭해서 열면 왼쪽 아래에 "Component Tree" 가 있는데 여기서 "webView" 를 클릭한다.

오른쪽 "Attributes" 패널에 어떠한 값들이 들어가 있는 것을 볼 수 있다. webView 라는 컴포넌트에 대한 정보이다.

 

webView 컴포넌트를 화면에 가득 차도록 Attributes 패널에 Constraint Widget 에서 top, bottom, left, right 에 "0" 을 넣어준다. 그리고 layout_width, layout_height 에 "0dp" 값을 넣어주면 디바이스 화면에 webView 컴포넌트가 꽉 찬다.

 

여기서 제일 중요한 점은 패널 제일 상단에 id 이다. 여기에 내가 설정하고 싶은 id 값을 넣고 MainActivity 에서 이 id 값으로 컴포넌트를 찾아 loadUrl 로 웹뷰를 실행시키는 것.

 

3. MainActivity.kt 수정

아래와 같이 코드를 넣어주면 된다.

 

package com.example.ttttest

import android.annotation.SuppressLint
import android.os.Bundle
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat

class MainActivity : AppCompatActivity() {
    @SuppressLint("SetJavaScriptEnabled")
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val myWebView: WebView = findViewById(R.id.webView)

        myWebView.settings.run {
            javaScriptEnabled = true
            javaScriptCanOpenWindowsAutomatically = true
            javaScriptEnabled = true
            setSupportMultipleWindows(true)
            domStorageEnabled = true
        }

        myWebView.webViewClient = WebViewClient()
        myWebView.webChromeClient = WebChromeClient()
        myWebView.loadUrl("https://www.google.com")
    }
}

 

webView.settings 에는 자바스크립트과 관련된 설정들과, DOM local, session 스토리지에 접근할 수 있도록하는 설정이 들어있다.

 

4. AndroidManifest.xml 수정하기

manifest 안에 아래 코드를 추가한다.

<uses-permission android:name="android.permission.INTERNET"/>

 

5. apk 만들기

Build > Build App Bundle(s) > Build APK(s) 조금 뒤에 AndroidStudioProjects > 프로젝트명 > app > build > outputs > apk > debug 에 "app-debug.apk" 가 만들어진걸 볼 수 있다.

 

Generate Signed App Bundle 로 빌드하면 key 를 만들어 앱에 서명하는 과정이 있고, 이렇게 빌드된 apk 로 구글 플레이스토와 같은 플랫폼에 등록할 수 있게된다.

댓글