android的各个版本中webview的实现是极度碎片化的,近期的android tv项目就躺枪一波,针对这样的需求,更换webview内核也就成了自然而然的选择。这里展示腾讯x5的内核使用。腾讯浏览服务
SDK集成
sdk集成有两种方式
1.gradle
在Module.app
的build.gradle
文件下的dependencies
节点下添加
dependencies {
// ...
api 'com.tencent.tbs.tbssdk:sdk:43903'
}
然后同步即可
2.jar包引入
将下好的jar包放入app/libs
文件夹下
此时可以右键 jar包然后选择 Add As Library
也可以在 gradle文件下的 android节点下添加
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
初始化
新建一个activity并添加到manifests
文件中
public class AppApplication extends Application {
private static final String TAG = "APP_APPLICATION";
@Override
public void onCreate() {
super.onCreate();
initX5SDK();
}
private void initX5SDK() {
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onCoreInitFinished() {
}
@Override
public void onViewInitFinished(boolean b) {
Log.d(TAG, "onViewInitFinished: ");
Toast.makeText(getBaseContext(), "x5初始化成功? " + b, Toast.LENGTH_LONG).show();
}
};
QbSdk.initX5Environment(getApplicationContext(), cb);
}
}
按照腾讯文档加入权限 和 service
使用
新建一个继承x5webview的类,然后将配置写入,在布局文件中使用我们写好配置的新组件即可
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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.example.x5sample.components.X5WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
布局文件中不要直接引用 x5的webview