안드로이드 웹뷰어 정보
Android 안드로이드 웹뷰어
관련링크
본문
링크주소에 안드로이드 스튜디오에서 다운받아서 설치 후 아래 소스를 추가하면 끝...
AI로 하니 금방 만들수 있네요..
MainActivity.kt
package com.seoul.seoulforeign
import android.annotation.SuppressLint
import android.os.Bundle
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidView
import com.seoul.seoulforeign.ui.theme.SeoulForeignTheme
class MainActivity : ComponentActivity() {
// WebView를 참조할 변수 선언
private lateinit var webView: WebView
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
SeoulForeignTheme {
Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
WebViewer(
url = "https://sir.kr",
modifier = Modifier.padding(innerPadding),
onWebViewCreated = { webView = it }
)
}
}
}
}
// 뒤로가기 버튼 처리
override fun onBackPressed() {
if (::webView.isInitialized && webView.canGoBack()) {
webView.goBack()
} else {
finish() // 앱 종료
}
}
}
@Composable
fun WebViewer(
url: String,
modifier: Modifier = Modifier,
onWebViewCreated: (WebView) -> Unit
) {
AndroidView(
modifier = modifier.fillMaxSize(),
factory = { context ->
WebView(context).apply {
webViewClient = WebViewClient()
settings.javaScriptEnabled = true
loadUrl(url)
onWebViewCreated(this)
}
}
)
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- ? 인터넷 권한 추가 -->
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.SeoulForeign">
<activity
android:name=".MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/Theme.SeoulForeign">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
구글 스토어에 업로드 할려면 비용이 들지만...
!-->!-->
공감
1
1
댓글 0개