当前位置:网站首页>短视频软件开发,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,更多内容欢迎关注之后的文章
边栏推荐
- GZIPOutputStream 类源码分析
- #yyds dry goods inventory# Interview must brush TOP101: the last k nodes in the linked list
- 使用常见问题解答软件的好处有哪些?
- 金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--章节实验
- SQL function TO_DATE (2)
- Zabbix6.0 DingTalk robot alarm
- 【综述专栏】IJCAI 2022 | 图结构学习最新综述:研究进展与未来展望
- [pyqt5] Custom controls to achieve scaling sub-controls that maintain the aspect ratio
- C#/VB.NET Extract table from PDF
- 123123123123
猜你喜欢
No need to crack, install Visual Studio 2013 Community Edition on the official website
通配符 SSL/TLS 证书
明尼苏达大学团队结合高通量实验与机器学习,实现有效可预测的特定位点重组过程,可调节基因编辑速度
在表格数据上,为什么基于树的模型仍然优于深度学习?
力扣刷题之合并两个有序数组
shell脚本专题(07):文件由cfs到bos
DAO开发教程【WEB3.0】
odoo coding conventions (programming conventions, coding guidelines)
Flowable-based upp (unified process platform) running performance optimization
MySQL中超键、主键及候选键的区别是什么
随机推荐
基于flowable的upp(统一流程平台)运行性能优化
2022,程序员应该如何找工作
Win11如何开启剪贴板自动复制?Win11开启剪贴板自动复制的方法
Industry Salon Phase II丨How to enable chemical companies to reduce costs and increase efficiency through supply chain digital business collaboration?
重保特辑|拦截99%恶意流量,揭秘WAF攻防演练最佳实践
483-82(23、239、450、113)
国标GB28181协议EasyGBS平台兼容老版本收流端口的功能实现
vtk体绘制代码报错的解决办法(代码在vtk7,8,9中都能运行),以及VTK数据集网站
7月30号|来一场手把手助您打造智能视觉新爆款的技术动手实验
力扣刷题之求两数之和
消息模板占位符的使用
金鱼哥RHCA回忆录:CL210管理OPENSTACK网络--网络配置选项
GZIPOutputStream 类源码分析
深入浅出Flask PIN
How to query database configuration parameters in GBase 8c, such as datestyle.What function or syntax to use?
How to record and analyze your alchemy process - use notes of the visual artifact Wandb [1]
想随时、随地、随心使用数据库的朋友们,全体注意!
SQL function TO_DATE (1)
When compiling a program with boost library with VS2013, it prompts fatal error C1001: An internal error occurred in the compiler
选择合适的 DevOps 工具,从理解 DevOps 开始