TBS腾讯浏览服务的SDK接入

Share Only 版

  1. 引入依赖库compile 'com.jakewharton:butterknife:7.0.1',与项目本身无关,不喜欢findViewById而已,这里有个小坑,最新版本的butterknife结合插件使用可能会导致findViewById或者@onClick绑定失败…

  2. 将shareOnly版本的jar包复制到libs文件夹中,然后同步(Sync Project with Gradel Files)。

  3. 如果你用以调试的手机是64位的,请在Main文件夹下新建jniLibs,并在jniLibs中引入32位的so文件,更多信息参考常见问题-您的App无法加载 x5 的原因排查

  4. 创建BaseApplication,调用TbsDownloader 的 needDownload(Context context, boolean oversea) 方法,并在Menifest文件中声明BaseApplication。

    public class BaseApplication extends Application {
    
    @Override
    public void onCreate() {
        super.onCreate();
        TbsDownloader.needDownload(getApplicationContext(), false);
    }
    }
  5. 添加com.tencent.smtt.sdk.WebView布局

    <com.tencent.smtt.sdk.WebView
        android:id="@+id/m_web_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
  6. 使用WebView控件,在我的手机上setWebViewClient(client)这一步很重要,其他的WebSettings同系统的WebView效果一样。

    public class MainActivity extends AppCompatActivity {
    
    @Bind(R.id.m_web_view)
    WebView mWebView;
    
    private WebViewClient client = new WebViewClient() {
        // 防止加载网页时调起系统浏览器
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    };
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        mWebView.setWebViewClient(client); 
        WebView.loadUrl("http://news.qq.com/a/20160817/044071.htm");
    }
    }
  7. 添加权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  8. 调试运行
    理论上你手机上如果已经安装了微信、QQ、QQ空间或者QQ浏览器,就已经下载了X5内核,第一次运行跳转到网页后,停留3秒,然后按下Home键,通过杀进程的方式结束应用(直接返回退出无效),然后再次进入应用,进入网页后长按复制,就能看到效果图:这里写图片描述
  9. 如果没有出现上述效果可以尝试如下操作:
    (1) 下载TBSDemo,安装到手机上;
    (2) 打开TBSDemo,安装x5内核,重启进入可以看到左上角的x5 core标识,意即X5内核安装成功;
    (3) 卸载重装你的应用;
    (4) 第一次打开应用,进入网页后停留3秒,在Home界面通过杀进程的方式结束应用;
    (5) 再次进入应用,查看TBS是否成功接入。
    以上步骤中安装TBSDemo其实就是为了安装x5内核,杀进程是因为X5内核一般是在第二次启动应用后生效。

With Downloaded版

大部分步骤与Share Only版相同,不同点在于:

  1. jar包替换为Share Only版本的jar包;

  2. 创建WebView之前调用QbSdk.allowThirdPartyAppDownload(true)方法;

  3. 由于可以独立下载,无需第三方应用(QQ/微信/QQ空间/QQ浏览器/TBSDemo),依然是首次进入,在网页停留3秒,按Home键杀进程结束应用,再次进入查看效果。
相关文章
相关标签/搜索