目录

简单的使用腾讯X5内核浏览器替代Android原生的WebView

第一步:X5官网下载SDK,引入到AndroidStudio中

第二步:如果是64位CPU手机,则需要引入一个so(liblbs.so),注意只有armeabi/armeabi-v7,千万不要引入像arme64等同arme的

第三步:代码层:

最后、本人的实例调试代码


简单的使用腾讯X5内核浏览器替代Android原生的WebView

官网地址:https://x5.tencent

理由:腾讯X5加载更多,显示更好,很多用原生WebView无法兼容从而无法显示的图片、页面基本都可以使用,微信、QQ的HTML加载都是用QQ浏览器X5内核的

第一步:X5官网下载SDK,引入到AndroidStudio中

第二步:如果是64位CPU手机,则需要引入一个so(liblbs.so),注意只有armeabi/armeabi-v7,千万不要引入像arme64等同arme的

作用是:把64位的软件统一转成32位打包运行

第三步:代码层:

1、MyAppplication

package com.telit.x5;

import android.app.Application;
import android.util.Log;

import com.tencent.smtt.sdk.QbSdk;

/**
 * author: qzx
 * Date: 2019/8/7 18:54
 */
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

            @Override
            public void onViewInitFinished(boolean arg0) {
                // TODO Auto-generated method stub
                //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
                Log.e("zbv", " onViewInitFinished is " + arg0);
            }

            @Override
            public void onCoreInitFinished() {
                // TODO Auto-generated method stub
            }
        };
        //x5内核初始化接口
        QbSdk.initX5Environment(getApplicationContext(), cb);
    }
}

二、BrowerActivity[官网示例代码,把视频播放的砍掉了,重点看加了注释的代码]

package com.telit.x5;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.os.Process;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.Toast;

import com.telit.x5.utils.x5.X5WebView;
import com.tencent.smtt.export.external.interfaces.IX5WebChromeClient.CustomViewCallback;
import com.tencent.smtt.export.external.interfaces.JsResult;
import com.tencent.smtt.sdk.CookieSyncManager;
import com.tencent.smtt.sdk.DownloadListener;
import com.tencent.smtt.sdk.ValueCallback;
import com.tencent.smtt.sdk.WebChromeClient;
import com.tencent.smtt.sdk.WebSettings;
import com.tencent.smtt.sdk.WebView;
import com.tencent.smtt.sdk.WebViewClient;
import com.tencent.smtt.utils.TbsLog;

import java.MalformedURLException;
import java.URL;


public class BrowserActivity extends Activity {
    /**
     * 作为一个浏览器的示例展示出来,采用android+web的模式
     */
    private X5WebView mWebView;
    private ViewGroup mViewParent;
    private ImageButton mBack;
    private ImageButton mForward;
    private ImageButton mExit;
    private ImageButton mHome;
    private ImageButton mMore;
    private Button mGo;
    private EditText mUrl;

    private static final String mHomeUrl = "http://119.3.243.43:8089/pptpage/qwfl/index.html";

    //    private static final String mHomeUrl = "http://app.html5.qq/navi/index";
    private static final String TAG = "SdkDemo";
    private static final int MAX_LENGTH = 14;
    private boolean mNeedTestPage = false;

    private final int disable = 120;
    private final int enable = 255;

    private ProgressBar mPageLoadingPr