当前位置:网站首页>短视频软件开发,Android开发,使用Kotlin实现WebView
短视频软件开发,Android开发,使用Kotlin实现WebView
2022-08-01 19:01:00 【云豹网络科技】
短视频软件开发,Android开发,使用Kotlin实现WebView
1、布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
2、Activity文件
class TestWebActivity : Activity(){
private var webView: WebView? = null
var WEB_URL = "https://www.baidu.com"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.test_webview)
initWebView()
}
fun initWebView(){
webView = findViewById(R.id.webview)
webView?.loadUrl(WEB_URL)
val webClient = object : WebViewClient(){
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
return false
}
}
//下面这些直接复制就好
webView?.webViewClient=webClient
var webSettings = webView!!.settings
webSettings.javaScriptEnabled = true // 开启 JavaScript 交互
webSettings.setAppCacheEnabled(true) // 启用或禁用缓存
webSettings.cacheMode = WebSettings.LOAD_DEFAULT // 只要缓存可用就加载缓存, 哪怕已经过期失效 如果缓存不可用就从网络上加载数据
webSettings.setAppCachePath(cacheDir.path) // 设置应用缓存路径
// 缩放操作
webSettings.setSupportZoom(false) // 支持缩放 默认为true 是下面那个的前提
webSettings.builtInZoomControls = false // 设置内置的缩放控件 若为false 则该WebView不可缩放
webSettings.displayZoomControls = false // 隐藏原生的缩放控件
webSettings.blockNetworkImage = false // 禁止或允许WebView从网络上加载图片
webSettings.loadsImagesAutomatically = true // 支持自动加载图片
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
webSettings.safeBrowsingEnabled = true // 是否开启安全模式
}
webSettings.javaScriptCanOpenWindowsAutomatically = true // 支持通过JS打开新窗口
webSettings.domStorageEnabled = true // 启用或禁用DOM缓存
webSettings.setSupportMultipleWindows(true) // 设置WebView是否支持多窗口
// 设置自适应屏幕, 两者合用
webSettings.useWideViewPort = true // 将图片调整到适合webview的大小
webSettings.loadWithOverviewMode = true // 缩放至屏幕的大小
webSettings.allowFileAccess = true // 设置可以访问文件
webSettings.setGeolocationEnabled(true) // 是否使用地理位置
webView?.fitsSystemWindows = true
webView?.setLayerType(View.LAYER_TYPE_HARDWARE,null)
webView?.loadUrl(WEB_URL)
}
//设置返回键的监听
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode==KeyEvent.KEYCODE_BACK){
if (webView!!.canGoBack()){
webView!!.goBack() //返回上一个页面
return true
}else{
finish()
return true
}
}
return false
}
}
3、在AndroidMinifest中添加权限
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.testwebview">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".TestWebActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<!--添加网络权限-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
以上就是 短视频软件开发,Android开发,使用Kotlin实现WebView,更多内容欢迎关注之后的文章
边栏推荐
- 硬件大熊原创合集(2022/07更新)
- 【pyqt5】自定义控件 实现能够保持长宽比地缩放子控件
- Win11校园网无法连接怎么办?Win11连接不到校园网的解决方法
- Clip-on multimeter use method, how to measure the voltage, current, resistance?
- How many steps does it take to convert an ENS domain name into music?
- 对于web性能优化我有话说!
- The function realization of the national standard GB28181 protocol EasyGBS platform compatible with the old version of the inflow port
- 国标GB28181协议EasyGBS平台兼容老版本收流端口的功能实现
- SaaS管理系统的应用优势在哪里?如何高效提升食品制造业数智化发展水平?
- 有点奇怪!访问目的网址,主机能容器却不行
猜你喜欢
随机推荐
在表格数据上,为什么基于树的模型仍然优于深度学习?
Win11校园网无法连接怎么办?Win11连接不到校园网的解决方法
PanGu-Coder:函数级的代码生成模型
首篇 NLP 领域图神经网络综述:127 页,从图构建到实际应用面面观
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--章节实验
LeetCode 1374.生成每种字符都是奇数个的字符串
LeetCode 0152. Product Maximum Subarray: dp + Roll in Place
Try compiling QT test on Allwinner V853 development board
#yyds dry goods inventory# Interview must brush TOP101: the last k nodes in the linked list
explain 各字段介绍
MLX90640 Infrared Thermal Imager Temperature Measurement Module Development Notes (Complete)
【LeetCode】Day109-the longest palindrome string
mysql函数的作用有哪些
shell脚本专题(07):文件由cfs到bos
The elder brother of the goldfish RHCA memoirs: CL210 experiment management it network - chapter
重保特辑|拦截99%恶意流量,揭秘WAF攻防演练最佳实践
No need to crack, install Visual Studio 2013 Community Edition on the official website
How to query database configuration parameters in GBase 8c, such as datestyle.What function or syntax to use?
Screen: GFF, OGS, Oncell, Incell of full lamination process
123123123123








