在Android项目中集成腾讯X5内核
2017-04-16 本文已影响3129人
cao健强
前言
前几天,为了更好更流畅的播放网页视屏,我们决定在项目中使用腾讯的tbs服务。之所以不使用crosswalk,是因为播放网络视频这个需求相对于使项目apk包增大十几兆还是有所不值。而在这种情况下,腾讯tbs的x5内核webView就很适合我们的要求了。
正文
今天就介绍一下如何使用x5内核替代系统原生的webView,以解决系统自带webView能力不足的问题。
- 下载tbs的jar包
在腾讯tbs升级至3.0后,我们集成x5内核已经不用再创建后台项目,直接下载jar包集成到项目中即可。下载地址:X5内核下载地址
在这里我还是说一下需要集成appkey的方法:
首先依然是下载敢放jar包,然后在官网开发者后台申请自己的appkey,并配置到自己的项目清单文件中:
<meta-data
android:name="QBSDKAppKey"
android:value="yourProjectAppKey" />
其中 name不变,value改为自己的APPkey
- 添加权限,可以直接复杂官方demo的权限。
- 在mainActivity或者application中加载X5内核(建议在application中加载)
public class APPAplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
@Override
public void onViewInitFinished(boolean arg0) {
// 在这里你可以做一些关于x5加载的操作
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
Log.d("app", " onViewInitFinished is " + arg0);
}
@Override
public void onCoreInitFinished() {
// TODO Auto-generated method stub
}
};
//x5内核初始化接口
QbSdk.initX5Environment(getApplicationContext(), cb);
}
}
-
复制官方demo中utils中的类到自己的项目中
复制utils下的文件到自己的项目中 - 将layout中的webView替换成X5webView。注意:这里的X5webView是需要带路径的,如com.X5util.X5WebView
- 接下来就可以直接使用X5WebView进行开发了,因为X5webView是继承自webView的,所以不用担心之前webView的方法不支持。
在使用X5内核播放视屏时,只需要在包含该X5WebView的activity中配置好相关属性即可支持全屏、小窗口播放等功能
private void initX5Video(){
Bundle data = new Bundle();
data.putBoolean("standardFullScreen", false);// true表示标准全屏,false表示X5全屏;不设置默认false,
data.putBoolean("supportLiteWnd", true);// false:关闭小窗;true:开启小窗;不设置默认true,
data.putInt("DefaultVideoScreen", 1);// 1:以页面内开始播放,2:以全屏开始播放;不设置默认:1
webView.getX5WebViewExtension().invokeMiscMethod("setVideoParams",
data);
}
至此,腾讯tbs服务集成成功
总结
关于腾讯的X5内核TBS服务先暂时记录这么多,还有许多没有写到的点在以后的工作学习逐步记录