腾讯X5的两三事

对于腾讯浏览器服务(X5),有评价好,有评价差,很正常,其实我也不知道这个好不好。但是,实际中可能会用到,或者加个x5的服务很多事情就轻易的解决了。比如你的App中有webview,webview中有视频,原生内核并不能全屏,第一次看到不能全屏我是懵逼滴,然后查了蛮多资料滴。最后真的准备动手自己去写啦,然后就找到了腾讯X5,然后一系列滴。其中确实有一些难过的地方,一个是没有很好的理解开发文档和demo,可能大牛太厉害,一个事参考网上的文章,知一二却不知三四,所以以为正确加载了腾讯X5,其实并没有。

网上有一些文章,写的确实不错,谢谢咯。(文章写与16.12.05,因为X5的不断升级,以后的读者们,这篇文章可能并不会帮到你)

1.网址:http://x5.tencent.com/

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.com/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.com");
        {
            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.相关文章推荐:

01

02

8.最后说一下,有时候水滴貌似出现了,但是全屏没出现的话,好好读官网中的这句话:您的App无法加载 x5 的原因排查……

9.本人还属于学习阶段啦,请各位多多指教


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值