前言
在工作中,遇到了一些使用低版本Android设备的情况,这导致了一些挑战,因为这些设备自带的浏览器版本较低,不支持一些现代的JavaScript特性,尤其是ES6及更高级的功能。为了解决这个兼容性问题,我们采取了使用Android WebView来内嵌H5网页的策略,并使用了TBS(腾讯浏览服务)来整合。
TBS的整合解决了Android版本不一致和WebView兼容性的问题。该项目基于TBS官网的示例进行了简单的工程集成,使得项目启动后可以通过联网自动下载X5内核。一旦内核安装完成,只需重新启动应用程序,即可无缝地使用TBS的X5内核。
这种解决方案让我们能够在低版本Android设备上快速开发并运行H5网页,同时确保了兼容性和性能。这样一来,我们能够更好地满足用户的需求,无论他们使用的是哪种Android设备版本。
工程简介
工程配置
在这个工程中,我们通过修改strings.xml
文件来定制WebView的路径和应用程序名称。
<resources>
<string name="app_name">TBS</string>
<string name="url">https://laijava.com/</string>
</resources>
要升级TBS SDK版本,只需在build.gradle
文件中修改依赖版本即可。
implementation 'com.tencent.tbs:tbssdk:44286'
TBS初始化
TBS的初始化操作在TBSApplication.java
文件中完成。
// 内核下载进度,调试时候可以根据stateCode来判断内核下载情况
@Override
public void onDownloadFinish(int stateCode) {
Log.i(TAG, "onDownloadFinished: " + stateCode);
if(stateCode == 100 ){
// 可选:添加额外的数据到 Intent 中
intent.putExtra("des", "完成下载安装中...");
// 发送广播消息
localBroadcastManager.sendBroadcast(intent);
customTimer();
}
}
这段代码监听了内核下载的进度,当下载完成时,发送广播消息通知其他组件。可以根据stateCode
的值来确定下载进度,并在必要时执行自定义的操作。