admin 管理员组文章数量: 887021
对于腾讯浏览器服务(X5),有评价好,有评价差,很正常,其实我也不知道这个好不好。但是,实际中可能会用到,或者加个x5的服务很多事情就轻易的解决了。比如你的App中有webview,webview中有视频,原生内核并不能全屏,第一次看到不能全屏我是懵逼滴,然后查了蛮多资料滴。最后真的准备动手自己去写啦,然后就找到了腾讯X5,然后一系列滴。其中确实有一些难过的地方,一个是没有很好的理解开发文档和demo,可能大牛太厉害,一个事参考网上的文章,知一二却不知三四,所以以为正确加载了腾讯X5,其实并没有。
网上有一些文章,写的确实不错,谢谢咯。(文章写与16.12.05,因为X5的不断升级,以后的读者们,这篇文章可能并不会帮到你)
1.网址:http://x5.tencent/
2.权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
3.导入:
a.从官网下载jar包,导入到您项目的 项目名/app/libs/ 目录下即可,右键Add as Library。
b.(这一点也是我写这篇文章的原因),在 Android 视图下, app/jniLibs/ 目录下,新建 armeabi 目录,下方移入文件 liblbs.so ,
详细可见官网的这一段文字:
您的App无法加载 x5 的原因排查:
1. App没有按照规则混淆了 TBS jar
由于我们提供的 TBS jar 已经混淆过,所以 App 混淆时可以不再混淆我们的 TBS jar,或者也可以把我们的混淆策略 proguard点击下载 加入 App 的混淆策略里。
2. 手机是64bit
如果运行app的手机是64bit,那么app将无法共享使用宿主的X5内核。解决办法是:
方法1:将app进行32bit库编译。具体操作方法是在android工程下libs目录新建armeabi文件夹,然后在其中放入任意一个32bit的so动态库,这样编译的app就能在32bit手机上使用X5内核了
方法2:如果 app 目录下存在多个 so,特别是同时存在 32bit和 64bit 的 so,不同IDE有不同处理方式:如果使用的是 Android studio 则需要配置 defaultConfig {...... ndk {abiFilters "armeabi", "armeabi-v7a", "x86", "mips" }},如果配置后编译报错,那么需要在gradle.properties文件中加上 Android.useDeprecatedNdk=true 即可;如果使用的是Eclipse则将所有的.so文件都放置在lib/armeabi文件夹下,lib文件夹下不要有其他的armeabiXXX文件夹。
3. 下载安装 TBSSuite 工具点击下载 ,启动TBSSuite,点击“TBS异常检查”,看看 TBSSuite 自动检查的结果是不是每一项都显示绿色的OK;
4. 如果您的app使用的还是2.3及以下版本的 TBS SDK,那么建议您的 App 升级使用最新的 SDK,地址如下:http://x5.tencent/doc?id=1004 旧版本SDK由于自身策略有20%的场景无法加载x5,新版本SDK已经把x5内核的加载场景提升到了90%以上,这样您的App使用新SDK后就不用再处理系统内核碎片化的兼容问题和适配问题了
5. 当微信手Q的x5内核后台升级时,您的App运行时新创建的webview可能由于宿主内核变化而切换使用系统内核,此时把您的App进程强制关闭再重启App就可以使用宿主的新版本x5内核了
4.写代码啦:
布局
<com.tencent.smtt.sdk.WebView
android:id="@+id/mwebview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.tencent.smtt.sdk.WebView>
5.写代码啦:
逻辑
public class MainActivity extends AppCompatActivity {
WebView mwebview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
mwebview= (WebView) findViewById(R.id.mwebview);
mwebview.setVideoFullScreen(this,true);
mwebview.loadUrl("http://www.thiscine");
{
Bundle data = new Bundle();
data.putBoolean("standardFullScreen", false);
data.putBoolean("supportLiteWnd", false);
data.putInt("DefaultVideoScreen", 2);
}
WebSettings webSettings = mwebview.getSettings();
webSettings.setJavaScriptEnabled(true);
mwebview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && mwebview.canGoBack()) {
mwebview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}}
6.感谢腾讯的X5服务,谢谢咯
7.相关文章推荐:
0102
8.最后说一下,有时候水滴貌似出现了,但是全屏没出现的话,好好读官网中的这句话:您的App无法加载 x5 的原因排查……
9.本人还属于学习阶段啦,请各位多多指教
本文标签: 腾讯
版权声明:本文标题:腾讯X5的两三事 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1726780377h1027660.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论