当前位置:网站首页>短视频软件开发,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,更多内容欢迎关注之后的文章
边栏推荐
- odoo coding conventions (programming conventions, coding guidelines)
- What are the application advantages of SaaS management system?How to efficiently improve the digital and intelligent development level of food manufacturing industry?
- Zabbix6.0 DingTalk robot alarm
- Keras deep learning practice - traffic sign recognition
- MLX90640 Infrared Thermal Imager Temperature Measurement Module Development Notes (Complete)
- explain 各字段介绍
- 【蓝桥杯选拔赛真题47】Scratch潜艇游戏 少儿编程scratch蓝桥杯选拔赛真题讲解
- kubernetes - deploy nfs storage class
- Hardware Bear Original Collection (Updated 2022/07)
- vtk体绘制代码报错的解决办法(代码在vtk7,8,9中都能运行),以及VTK数据集网站
猜你喜欢
Fuzzy query in Map pass-by-value and object pass-by-value
kubernetes-部署nfs存储类
No need to crack, install Visual Studio 2013 Community Edition on the official website
亚马逊云科技Build On2022技能提升计划第二季——揭秘出海爆款新物种背后的黑科技
Prometheus的Recording rules实践
暑假第二周总结博客
MySQL database - stored procedures and functions
Screen: GFF, OGS, Oncell, Incell of full lamination process
#yyds干货盘点# 面试必刷TOP101: 链表中倒数最后k个结点
MLX90640 红外热成像仪测温模块开发笔记(完整篇)
随机推荐
从普通进阶成优秀的测试/开发程序员,一路过关斩将
The XML configuration
Break the performance ceiling!AsiaInfo database supports more than 1 billion users, with a peak of one million transactions per second
LeetCode 0151.颠倒字符串中的单词
How to record and analyze your alchemy process - use notes of the visual artifact Wandb [1]
mysql函数的作用有哪些
MySQL数据库————存储过程和函数
消息模板占位符的使用
TestNG多个xml进行自动化测试
GBase 8c中怎么查询数据库配置参数,例如datestyle。使用什么函数或者语法呢?
#yyds干货盘点# 面试必刷TOP101: 链表中倒数最后k个结点
#yyds dry goods inventory# Interview must brush TOP101: the last k nodes in the linked list
腾讯云主机安全 x 轻量应用服务器|强强联合主机安全普惠版重磅发布
How to query database configuration parameters in GBase 8c, such as datestyle.What function or syntax to use?
对于web性能优化我有话说!
Screenshot of Selenium in Remote
Map by value
123123123123
Zabbix6.0钉钉机器人告警
哈哈!一个 print 函数,还挺会玩啊!