Android  腾讯 X5 基础使用记录 。

 

腾讯 X5 是什么?

也是一个类似 WebView 的组件?

 

为什么不使用Android系统自带的 WebView 而选择 腾讯的 X5?

相对于Android系统自带的WebView有一下有点:安全、极速,省流、可靠、兼容、HTML5能力、内核共享、增强浏览能力。

详细优点请参考腾讯X5官网优点介绍:

 

效果图:                                                                                   

                             

第一步:下载 jar 包、html文件、so文件,并添加到相应的位置。官网下载 jar 包

第二步:在 build.gradle 文件中 在相应的位置添加代码如下:

复制粘贴即可:

ndk {//腾讯X5            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"        }

第三步: activity_main.xml 中添加一下代码:

<?xml version="1.0" encoding="utf-8"?>    

第四步:MainActivity.java 中添加以下代码:

public class MainActivity extends AppCompatActivity {    private WebView tenX5_webView;    private WebSettings webSettings;    private final static String url = "http://www.google.cn/maps/@25.0620047,110.5921573,15109095m/data=!3m1!1e3";    private static final String TAG = "MainActivity";    /**     * 激活 js 调用,设置 webView 活跃状态     */    @SuppressLint("SetJavaScriptEnabled")    @Override    protected void onResume() {        super.onResume();        tenX5_webView.onResume();        tenX5_webView.getSettings().setJavaScriptEnabled(true);    }    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tenX5_webView = findViewById(R.id.tenX5_webView);        webSettings = tenX5_webView.getSettings();        initWebView();//初始化腾讯 X5 webView        loadWe();//腾讯 X5 加载网页        if(tenX5_webView != null){            tenX5_webView.loadUrl(url);//加载网页        }    }    /**     * 初始化腾讯 X5 webView     */    private void initWebView() {        //优化异常上报        com.tencent.smtt.sdk.WebView.getCrashExtraMessage(this);        //视频为了避免闪屏和透明问题        getWindow().setFormat(PixelFormat.TRANSLUCENT);        //避免输入法界面弹出后遮挡输入光标的问题        getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);        //非wifi情况下,主动下载x5内核        QbSdk.setDownloadWithoutWifi(true);        //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。        QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {            @Override            public void onViewInitFinished(boolean arg0) {                //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。                Log.i(TAG,"腾讯 X 5 初始化:" + arg0);                Log.i(TAG,arg0 == true ? "腾讯 X5 初始化成功!" : "腾讯 X5 初始化失败!");            }            @Override            public void onCoreInitFinished() {            }        };        //x5内核初始化接口        QbSdk.initX5Environment(getApplicationContext(), cb);    }    /**     * 腾讯 X5 加载网页     */    private void loadWe(){        if(webSettings != null){            webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。            webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放            webSettings.setDisplayZoomControls(true); //隐藏原生的缩放控件            webSettings.setBlockNetworkImage(false);//解决图片不显示            webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片            webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式        }        if(tenX5_webView != null){            //该界面打开更多链接            tenX5_webView.setWebViewClient(new WebViewClient() {                @Override                public boolean shouldOverrideUrlLoading(WebView webView, String s) {                    webView.loadUrl(s);                    return true;                }            });            //监听网页的加载进度            tenX5_webView.setWebChromeClient(new WebChromeClient() {                @Override                public void onProgressChanged(WebView webView, int i) {                    Log.i(TAG,"当前 腾讯X5 网速:" + i);                    //当前网页加载到 100% 后就显示 腾讯X5 的webView组件                    if (i < 100) {                        webView.setVisibility(View.GONE);                    } else {                        webView.setVisibility(View.VISIBLE);                    }                }            });        }    }    /**     * 退出界面暂停 webView的活跃     */    @Override    protected void onPause() {        super.onPause();        tenX5_webView.onPause();        tenX5_webView.getSettings().setLightTouchEnabled(false);    }    /**     * 销毁 放置内存泄漏     */    @Override    protected void onDestroy() {        if (this.tenX5_webView != null) {            tenX5_webView.destroy();        }        super.onDestroy();    }}

总结:行行有注释,祝愿小伙伴们一次性成功。ヾ(๑╹◡╹)ノ"

当前文章源码:https://github.com/1079374315/TenX5_Dome.git

点个关注点个赞呗(〃'▽'〃),关注博主最新发布库:https://github.com/1079374315/GT

更多相关文章

  1. Android(安卓)集成Chrome 浏览器内核 Crosswalk
  2. cocos2dx在Android下如何接入91SDK
  3. Android和Linux的关系
  4. Android(安卓)系统架构了解学习
  5. Android启动(1)启动过程概述
  6. Android的Application中onCreate执行多次解决方案
  7. Android内核开发:系统分区与镜像文件的烧写
  8. Android内核开发:图解Android系统的启动过程
  9. 接入新浪、腾讯微博和人人网的Android客户端实例 接入新浪、腾讯

随机推荐

  1. Android开发常用网站汇总
  2. //tools/emulator" java.io.IOException:
  3. Android(安卓)Design Support Library(3)-
  4. Android L之 VectorDrawable
  5. Android通知栏的变化
  6. Android ThreadLocal 源码分析
  7. [Android] View和ViewGroup事件分发机制
  8. Android中包含多个Activity的应用退出按
  9. 通用代码库之listview和GridView
  10. Android:WebService