Share Only 版
引入依赖库
compile 'com.jakewharton:butterknife:7.0.1'
,与项目本身无关,不喜欢findViewById而已,这里有个小坑,最新版本的butterknife结合插件使用可能会导致findViewById或者@onClick绑定失败…将shareOnly版本的jar包复制到libs文件夹中,然后同步(
Sync Project with Gradel Files
)。如果你用以调试的手机是64位的,请在Main文件夹下新建jniLibs,并在jniLibs中引入32位的so文件,更多信息参考常见问题-您的App无法加载 x5 的原因排查。
创建BaseApplication,调用TbsDownloader 的 needDownload(Context context, boolean oversea) 方法,并在Menifest文件中声明BaseApplication。
public class BaseApplication extends Application {@Override public void onCreate() {super.onCreate();TbsDownloader.needDownload(getApplicationContext(), false); } }
添加com.tencent.smtt.sdk.WebView布局
<com.tencent.smtt.sdk.WebViewandroid:id="@+id/m_web_view"android:layout_width="match_parent"android:layout_height="wrap_content"/>
使用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"); } }
添加权限
<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" />
- 调试运行
理论上你手机上如果已经安装了微信、QQ、QQ空间或者QQ浏览器,就已经下载了X5内核,第一次运行跳转到网页后,停留3秒,然后按下Home键,通过杀进程的方式结束应用(直接返回退出无效),然后再次进入应用,进入网页后长按复制,就能看到效果图: - 如果没有出现上述效果可以尝试如下操作:
(1) 下载TBSDemo,安装到手机上;
(2) 打开TBSDemo,安装x5内核,重启进入可以看到左上角的x5 core标识,意即X5内核安装成功;
(3) 卸载重装你的应用;
(4) 第一次打开应用,进入网页后停留3秒,在Home界面通过杀进程的方式结束应用;
(5) 再次进入应用,查看TBS是否成功接入。
以上步骤中安装TBSDemo其实就是为了安装x5内核,杀进程是因为X5内核一般是在第二次启动应用后生效。
With Downloaded版
大部分步骤与Share Only版相同,不同点在于:
jar包替换为Share Only版本的jar包;
创建WebView之前调用QbSdk.allowThirdPartyAppDownload(true)方法;
- 由于可以独立下载,无需第三方应用(QQ/微信/QQ空间/QQ浏览器/TBSDemo),依然是首次进入,在网页停留3秒,按Home键杀进程结束应用,再次进入查看效果。