当前位置:网站首页>X5WebView使用
X5WebView使用
2022-08-10 12:38:00 【锐湃】
项目中经常会用到WebView,Android原生的WebView使用会有点不太好用,在此介绍一个比较好用的X5WebView。
一.添加依赖,权限:
// X5内核WebView
implementation 'com.tencent.tbs:tbssdk:44085'
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
二. 在Application初始化:
public class MyApplication extends Application {
public static final String TAG = "MyApplication";
@Override
public void onCreate() {
super.onCreate();
// X5WebView初始化
initX5WebView();
}
private void initX5WebView() {
// 搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
// x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
LogUtils.d("onViewInitFinished is "+arg0);
}
@Override
public void onCoreInitFinished() {
}
};
// x5内核初始化接口
QbSdk.initX5Environment(this, cb);
// 在调用TBS初始化、创建WebView之前进行如下配置
HashMap map = new HashMap();
map.put(TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER, true);
map.put(TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE, true);
QbSdk.initTbsSettings(map);
}
}
三.代码中使用:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.tencent.smtt.sdk.WebView
android:id="@+id/forum_context"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
AndPermission.with(this)
.runtime()
.permission(Permission.WRITE_EXTERNAL_STORAGE, Permission.READ_PHONE_STATE)
.onGranted { }
.onDenied { }
.start()
// 加载进度
forum_context.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(p0: WebView?, p1: Int) {
super.onProgressChanged(p0, p1)
LogUtils.d(p1)
}
}
forum_context.settings.javaScriptEnabled = true // 开启js
forum_context.settingsExtension.setDisplayCutoutEnable(true) // 刘海屏适配
forum_context.loadUrl("https://www.baidu.com") // 加载url
}
override fun onDestroy() {
QbSdk.clearAllWebViewCache(this, true) // 清除缓存
super.onDestroy()
}
}
————————————————
版权声明:本文为CSDN博主「Peng.Lei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32138419/article/details/123796994
边栏推荐
- iTextSharp操作PDF
- 友邦人寿可观测体系设计与落地
- 2022-08-09:以下go语言代码输出什么?A:否,会 panic;B:是,能正确运行;C:不清楚,看投票结果。 package main import ( “fmt“ “syn
- MySQL索引的B+树到底有多高?
- YTU 2295: KMP模式匹配 一(串)
- 交换机的基础知识
- Prada, big show?In the yuan in the universe that!
- 娄底石油化工实验设计、建设规划概述
- 广东10个项目入选工信部2021年物联网示范项目名单
- Merge similar items in LeetCode simple questions
猜你喜欢
Basic knowledge of switches
【ECCV 2022|百万奖金】PSG大赛:追求“最全面”的场景理解
3DS MAX 批量导出文件脚本 MAXScript 带界面
MySQL面试题整理
关于flask中static_folder 和 static_url_path参数理解
接口自动化测试基础篇
Redis 定长队列的探索和实践
机器学习实战(2)——端到端的机器学习项目
Shell:数组
mSystems | Zhongnong Wang Jie Group Reveals the Mechanisms Affecting Soil "Plastic Interstitial" Microbial Communities
随机推荐
Network Saboteur
es6-promise对象详解
Blast!ByteDance successfully landed, only because the interview questions of LeetCode algorithm were exhausted
教育Codeforces轮41(额定Div。2)大肠Tufurama
【百度统计】用户行为分析
Code Casual Recording Notes_Dynamic Programming_70 Climbing Stairs
没有接班人,格力只剩“明珠精选”
Reversing words in a string in LeetCode
LeetCode中等题之搜索二维矩阵
想问下大佬们 ,cdc oracle初始化一张300万的表任务运行着后面就这个错 怎么解决哇
代码随想录笔记_动态规划_70爬楼梯
LeetCode中等题之颠倒字符串中的单词
一个 CRM One Order Application log 的单元测试报表
Have you guys encountered this problem?MySQL 2.2 and 2.3-SNAPSHOT are like this, it seems to be
“68道 Redis+168道 MySQL”精品面试题(带解析)
DNS欺骗-教程详解
Codeforces Round #276 (Div. 1) B. Maximum Value
[Advanced Digital IC Verification] Difference and focus analysis between SoC system verification and IP module verification
NodeJs原理 - Stream(二)
M²BEV: Multi-Camera Joint 3D Detection and Segmentation with Unified Bird’s-Eye View Representation