以下に、Jetpack Composeを使用してAndroidアプリでWebViewを実装する方法を説明します。
必要な依存関係の追加
まず、build.gradle
ファイルに以下の依存関係を追加します。
dependencies {
implementation "androidx.compose.ui:ui:1.0.0"
implementation "androidx.activity:activity-compose:1.3.0"
implementation "androidx.compose.material:material:1.0.0"
}
WebViewの実装
次に、ComposeでWebViewを使用するためにAndroidView
コンポーズを使います。
import android.os.Bundle
import android.webkit.WebChromeClient
import android.webkit.WebView
import android.webkit.WebViewClient
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Surface
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidView
import com.example.yourapp.ui.theme.YourAppTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
YourAppTheme {
Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
WebViewScreen()
}
}
}
}
}
@Composable
fun WebViewScreen() {
// AndroidViewを利用してWebViewをComposeのUIに統合
AndroidView(factory = {
WebView(it).apply {
// WebViewの設定
settings.javaScriptEnabled = true
webChromeClient = WebChromeClient()
webViewClient = WebViewClient()
// ロードするURL
loadUrl("https://www.example.com")
}
}, update = {
// 必要があればWebViewの更新処理
})
}
説明
- Jetpack ComposeとWebViewの統合:
AndroidView
コンポーズを使用することで、通常のAndroidビュー(この場合はWebView)をCompose内で利用できます。 - WebViewの設定: JavaScriptの有効化やクライアント設定を行い、指定したURLをロードします。
このコードを使って、Jetpack Composeアプリ内でWebページを表示することができます。必要に応じて、さらに高度なカスタマイズも可能です。
コメント