웹뷰만 실행되는 앱을 만들기 위해서는 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 로 구글 플레이스토와 같은 플랫폼에 등록할 수 있게된다.
댓글