X5WebView使用
时间:2022-08-03 17:19:00
常用于项目WebView,Android原生的WebView使用起来有点不容易。这里有一个更好的介绍X5WebView。
一.权限:增加依赖:
// X5内核WebView implementation 'com.tencent.tbs:tbssdk:44085'
二. 在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); } }
三.使用代码:
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() } }
完结!!!