Jetpack Compose 加载网页实现方式

Jetpack Compose 加载网页实现方式

由于Kotlin的Jetpack Compose是一种响应式的UI搭建框架,所以传统的安卓界面搭建的逻辑和布局直接运用在Jetpack Compose上是行不通,感觉上不是一个维度的东西,但是可以借助Jetpack Compose提供的一个函数(AndroidView)来实现,比如网页的加载:

代码如下:

@Composable
fun WebView(modifier: Modifier, token: String, id: String) {
    AndroidView(
        modifier = modifier,
        factory = { context ->
            val webView = WebView(context)
            webView.settings.javaScriptEnabled = true
            webView.settings.javaScriptCanOpenWindowsAutomatically = true
            webView.settings.domStorageEnabled = true
            webView.settings.loadsImagesAutomatically = true
            webView.settings.mediaPlaybackRequiresUserGesture = false
            webView.webViewClient = WebViewClient()
            webView.loadUrl("http://h5.tdweilai.com/#/article/list/index/青岛/$id/$token")
            webView
        })
}

上述代码中的WebView就是传统安卓的一个view的子类,但是通过AndroidView函数就可以将其在Jetpack Compose中实现。

Jetpack Compose网页加载
当然,在当前Jetpack Compose还是beta版本,所以如果真的要实现一个企业级需求的项目的话,可能在Compose的开源资源框架缺少的情况下,利用此种方式,将安卓传统的“嫁接”到Compose中。这个有点类似iOS的Swift开发,要用到某些Objective-C的三方库类似

你可能感兴趣的:(Jetpack Compose 加载网页实现方式)