短视频软件开发,Android开发,使用Kotlin实现WebView
短视频软件开发,Android开发,使用Kotlin实现WebView
1、布局文件
1 | <br><LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android" <br> android:orientation= "vertical" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" ><br> <br> <WebView<br> android:id= "@+id/webview" <br> android:layout_width= "match_parent" <br> android:layout_height= "match_parent" /><br> <br></LinearLayout> |
2、Activity文件
1 | <br> class TestWebActivity : Activity(){<br> private var webView: WebView? = null<br> <br> var WEB_URL = "https://www.baidu.com" <br> <br> override fun onCreate(savedInstanceState: Bundle?) {<br> super.onCreate(savedInstanceState)<br> setContentView(R.layout.test_webview)<br> <br> initWebView()<br> }<br> <br> fun initWebView(){<br> webView = findViewById(R.id.webview)<br> webView?.loadUrl(WEB_URL)<br> <br> val webClient = object : WebViewClient(){<br> override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {<br> return false<br> }<br> }<br> <br> //下面这些直接复制就好<br> webView?.webViewClient=webClient<br> <br> var webSettings = webView!!.settings<br> webSettings.javaScriptEnabled = true // 开启 JavaScript 交互<br> webSettings.setAppCacheEnabled(true) // 启用或禁用缓存<br> webSettings.cacheMode = WebSettings.LOAD_DEFAULT // 只要缓存可用就加载缓存, 哪怕已经过期失效 如果缓存不可用就从网络上加载数据<br> webSettings.setAppCachePath(cacheDir.path) // 设置应用缓存路径<br> <br> // 缩放操作<br> webSettings.setSupportZoom(false) // 支持缩放 默认为true 是下面那个的前提<br> webSettings.builtInZoomControls = false // 设置内置的缩放控件 若为false 则该WebView不可缩放<br> webSettings.displayZoomControls = false // 隐藏原生的缩放控件<br> <br> webSettings.blockNetworkImage = false // 禁止或允许WebView从网络上加载图片<br> webSettings.loadsImagesAutomatically = true // 支持自动加载图片<br> <br> if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {<br> webSettings.safeBrowsingEnabled = true // 是否开启安全模式<br> }<br> <br> webSettings.javaScriptCanOpenWindowsAutomatically = true // 支持通过JS打开新窗口<br> webSettings.domStorageEnabled = true // 启用或禁用DOM缓存<br> webSettings.setSupportMultipleWindows(true) // 设置WebView是否支持多窗口<br> <br> // 设置自适应屏幕, 两者合用<br> webSettings.useWideViewPort = true // 将图片调整到适合webview的大小<br> webSettings.loadWithOverviewMode = true // 缩放至屏幕的大小<br> webSettings.allowFileAccess = true // 设置可以访问文件<br> <br> webSettings.setGeolocationEnabled(true) // 是否使用地理位置<br> <br> webView?.fitsSystemWindows = true<br> webView?.setLayerType(View.LAYER_TYPE_HARDWARE,null)<br> webView?.loadUrl(WEB_URL)<br> }<br> <br> //设置返回键的监听<br> override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {<br> if (keyCode==KeyEvent.KEYCODE_BACK){<br> if (webView!!.canGoBack()){<br> webView!!.goBack() //返回上一个页面<br> return true<br> } else {<br> finish()<br> return true<br> }<br> }<br> return false<br> }<br>} |
3、在AndroidMinifest中添加权限
1 | <br><manifest xmlns:android= "http://schemas.android.com/apk/res/android" <br> package= "com.android.testwebview" ><br> <br> <application<br> android:allowBackup= "true" <br> android:icon= "@mipmap/ic_launcher" <br> android:label= "@string/app_name" <br> android:roundIcon= "@mipmap/ic_launcher_round" <br> android:supportsRtl= "true" <br> android:theme= "@style/AppTheme" ><br> <activity android:name= ".TestWebActivity" ><br> <intent-filter><br> <action android:name= "android.intent.action.MAIN" /><br> <br> <category android:name= "android.intent.category.LAUNCHER" /><br> </intent-filter><br> </activity><br> </application><br> <br> <!--添加网络权限--><br> <uses-permission android:name= "android.permission.INTERNET" /><br> <br></manifest> |
以上就是 短视频软件开发,Android开发,使用Kotlin实现WebView,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现