@Override
public void onViewInitFinished(boolean b) {
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
Log.e(“@@”,“加载内核是否成功:”+b);
}
});
}
}
4. 使用WebView
然后需要用到WebView的时候,在布局这样子下面这样子写,注意要全路径com.tencent.smtt.sdk.WebView
:
<com.tencent.smtt.sdk.WebView
android:id=“@+id/twv_test”
android:layout_width=“match_parent”
android:layout_height=“match_parent”/>
其余使用方法基本和系统的WebView一样,例如js的交互是,也是一样的addJavascriptInterface
,所以使用成本还不算高。但是有些是需要注意的,继续看下去:
1. 全屏播放视频
页面的Activity需要声明:
android:configChanges=“orientation|screenSize|keyboardHidden”
视频为了避免闪屏和透明问题,Activity在onCreate时需要设置:
//这个对宿主没什么影响,建议声明
getWindow().setFormat(PixelFormat.TRANSLUCENT);
在非硬绘手机和声明需要controller的网页上,视频切换全屏和全屏切换回页面内会出现视频窗口透明问题,需要在activity的style进行如下设置:
false。
以下接口禁止(直接或反射)调用,避免视频画面无法显示:
webview.setLayerType()
webview.setDrawingCacheEnabled(true);
2. 输入法
避免输入法界面弹出后遮挡输入光标的问题,所在的Activity添加属性:
android:windowSoftInputMode=“stateHidden|adjustResize”
或者 在ActivityonCreate时候代码设置也行:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
3. 自定义UA
UA是什么?
userAgent,用户代理。是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。作用就是告诉网页我这个是什么系统。
如果 app 需要自定义 UA,建议采取在 SDK 默认UA 后追加 app UA 的方式。示例:
//其中APP_NAME_UA是app自定义UA
webSetting.setUserAgentString(webSetting.getUserAgentString() + APP_NAME_UA);
4. 额外的视频播放器
没错,这货还提供了一个视频播放的功能,下面官方的说明:
TBS不仅提供了强大的网页浏览功能,更提供了强大的页面H5视频播放支持,播放器同时支持页面,小窗,全屏播放体验,强大的解码能力,包括mp4,rmvb,flv,avi等26种视频格式支持。
TBS播放器的播放场景不仅局限于H5页面播放,也可以接入一般的视频流链接,比如本地文件,网络的视频流链接。开发