美文网首页
Android 集成 X5 WebView

Android 集成 X5 WebView

作者: imsjw | 来源:发表于2019-01-29 10:25 被阅读0次

    AndroidManifest.xml
    1.添加jar包
    在libs目录下添加sdk中的jar包
    将Demo中的jniLibs目录复制到 main文件夹下
    2.需要添加权限

    <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" /> 
    

    3.build.gradle 添加配置

     ndk {
         abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
     }
    

    4.页面

    <com.tencent.smtt.sdk.WebView
            android:id="@+id/web_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:paddingLeft="5dp"
            android:paddingRight="5dp" />
    

    5.Activity

    package com.sykj.article.articlesystem;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    
    import com.tencent.smtt.sdk.QbSdk;
    import com.tencent.smtt.sdk.WebView;
    import com.tencent.smtt.sdk.WebViewClient;
    
    public class MainActivity extends AppCompatActivity {
    
        private WebView webView;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.web_view);
            initX5WebView();
            webView = findViewById(R.id.web_view);
            //防止跳转到系统浏览器
            webView.setWebViewClient(new WebViewClient() {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    loadurlLocalMethod(view, url);
                    return false;
                }
            });
            webView.loadUrl("http://www.baidu.com");
        }
    
        public void loadurlLocalMethod(final WebView webView, final String url) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    webView.loadUrl(url);
                }
            });
        }
    
        private void initX5WebView() {
            //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
            QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
                @Override
                public void onViewInitFinished(boolean arg0) {
                    if (arg0) {
                        Log.d("ArticleSystem", "X5 内核加载成功");
                    } else {
                        Log.d("ArticleSystem", "X5 内核加载失败");
                    }
                }
    
                @Override
                public void onCoreInitFinished() {
                }
            };
            //x5内核初始化接口
            QbSdk.initX5Environment(getApplicationContext(), cb);
        }
    }
    
    

    完整配置
    AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.sykj.article.articlesystem">
    
        <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" />
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    web_view.xml

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <com.tencent.smtt.sdk.WebView
            android:id="@+id/web_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:paddingLeft="5dp"
            android:paddingRight="5dp" />
    
    </android.support.constraint.ConstraintLayout>
    

    build.gradle

    apply plugin: 'com.android.application'
    
    android {
        compileSdkVersion 27
        defaultConfig {
            applicationId "com.sykj.article.articlesystem"
            minSdkVersion 15
            targetSdkVersion 27
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
            ndk {
                abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
            }
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation 'com.android.support:appcompat-v7:27.1.1'
        implementation 'com.android.support.constraint:constraint-layout:1.1.3'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
        implementation files('libs/tbs_sdk_thirdapp_v3.6.0.1352_43618_sharewithdownload_withoutGame_obfs_20180918_120327.jar')
    }
    
    

    相关文章

      网友评论

          本文标题:Android 集成 X5 WebView

          本文链接:https://www.haomeiwen.com/subject/wjntsqtx.html