JetpackCompose从入门到实战学习笔记1—在compose中简单使用webview

JetpackCompose从入门到实战学习笔记1—在compose中简单使用webview

之前在JetpackCompose刚出来时简单学习过,这次是系统地学习,在双11买了JetpackCompose这本书,目前正在一章一章的看,感觉很有意思,本文讲解webview在Compose中的简单使用。

1.保持最新的Compose版本:

在这里插入图片描述

buildscript {
    ext {
        compose_version = '1.1.1'
    }
    repositories {
        google()
        mavenCentral()
        maven { url 'https://jitpack.io' }
        maven { url "https://maven.aliyun.com/repository/public" }
    }
}

2.简单的代码示例:

@Composable
fun WebViewPage(modifier: Modifier = Modifier, linkUrl: String) {
    Column(modifier = modifier.fillMaxSize()) {
        AndroidView(modifier = modifier.fillMaxSize(),
            factory = {
                val webView = WebView(it)
                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(linkUrl)
                webView
            })
    }
}

3.完整的代码示例如下:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colors.background) {
                WebViewPage(modifier = Modifier.fillMaxSize(), linkUrl = "https://juejin.cn/android")
            }
        }
    }
}

@Composable
fun WebViewPage(modifier: Modifier = Modifier, linkUrl: String) {
    Column(modifier = modifier.fillMaxSize()) {
        AndroidView(modifier = modifier.fillMaxSize(),
            factory = {
                val webView = WebView(it)
                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(linkUrl)
                webView
            })
    }
}

@Preview(showBackground = true)
@Composable
fun DefaultPreview() {
    WebViewPage(linkUrl = "https://juejin.cn/android")

4.实现的效果图如下:

在这里插入图片描述

5.demo的源码地址如下:

https://gitee.com/jackning_admin/compose-web-view-demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值