android webview第三方框架,Android 集成第三方 WebView 内核

1、腾讯 TBS X5

导入 tbs_sdk

从这里下载最新版本 X5 SDK

导入 SDK 到项目

File->Project Structure->+->Import .JAR/.AAR Package->Next

选择下载好的 tbs_sdk.jar 导入

设置默认 project 依赖 tbs_sdk project

至此,tbs_sdk 就导入完成。

权限

布局文件

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

android:id="@+id/wv"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent">

在 Application 中初始化

import android.app.Application;

import com.tencent.smtt.sdk.QbSdk;

public class MyApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

//非wifi情况下,主动下载x5内核

QbSdk.setDownloadWithoutWifi(true);

//搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。

QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

@Override

public void onViewInitFinished(boolean arg0) {

//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。

}

@Override

public void onCoreInitFinished() {

}

};

QbSdk.initX5Environment(getApplicationContext(),cb);

}

}

应用及常用设置

public class MainActivity extends AppCompatActivity {

WebView mWebView;

WebSettings mWebSettings;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mWebView = findViewById(R.id.wv);

initWebView();

}

@SuppressLint("SetJavaScriptEnabled")

private void initWebView() {

mWebSettings = mWebView.getSettings();

mWebSettings.setJavaScriptEnabled(true); // 支持Javascript 与js交互

mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);// 支持通过JS打开新窗口

mWebSettings.setAllowFileAccess(true); // 设置可以访问文件

mWebSettings.setSupportZoom(true); // 支持缩放

mWebSettings.setBuiltInZoomControls(true); // 设置内置的缩放控件

mWebSettings.setUseWideViewPort(true); // 自适应屏幕

mWebSettings.setSupportMultipleWindows(true); // 多窗口

mWebSettings.setDefaultTextEncodingName("utf-8"); // 设置编码格式

mWebSettings.setAppCacheEnabled(true);

mWebSettings.setDomStorageEnabled(true);

mWebSettings.setAppCacheMaxSize(Long.MAX_VALUE);

mWebSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); // 缓存模式

//设置不用系统浏览器打开,直接显示在当前WebView

mWebView.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

});

//设置WebChromeClient类

mWebView.setWebChromeClient(new WebChromeClient());

mWebView.loadUrl("https://www.baidu.com/");

}

@Override

protected void onStop() {

// 清理缓存

if (mWebView != null) {

mWebView.loadUrl("about:blank");

mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);

mWebView.clearHistory();

mWebView.destroy();

mWebView = null;

}

super.onStop();

}

}

2、Crosswalk

从https://download.01.org/crosswalk/releases/crosswalk/android/stable/latest/可以获取最新稳定版的 crosswalk arr 文件,crosswalk sdk 文件很大,如果你有确定针对的机型,就下载相应版本的包吧,这里我就用 crosswalk-23.53.589.4.aar 来演示了,这个包支持 x86、x64 以及 arm 等全类型 ABI,但代价就是这个包有 48mb 。

导入 crosswalk_sdk

步骤同 x5 tbs_sdk,注意 crosswalk_sdk 支持 minSdkVersion >= 16

权限

布局

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

android:id="@+id/wv"

android:layout_width="match_parent"

android:layout_height="match_parent"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent">

应用及常用设置

public class MainActivity extends AppCompatActivity {

XWalkView mWebView;

XWalkSettings mWebSettings;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mWebView = findViewById(R.id.wv);

initWebView();

}

@SuppressLint("SetJavaScriptEnabled")

private void initWebView() {

mWebSettings = mWebView.getSettings();

mWebSettings.setJavaScriptEnabled(true); // 支持Javascript 与js交互

mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);// 支持通过JS打开新窗口

mWebSettings.setAllowFileAccess(true); // 设置可以访问文件

mWebSettings.setSupportZoom(true); // 支持缩放

mWebSettings.setBuiltInZoomControls(true); // 设置内置的缩放控件

mWebSettings.setUseWideViewPort(true); // 自适应屏幕

mWebSettings.setSupportMultipleWindows(true); // 多窗口

mWebSettings.setDomStorageEnabled(true);

mWebSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); // 缓存模式

// setResourceClient

mWebView.setResourceClient(new XWalkResourceClient(mWebView));

mWebView.loadUrl("https://www.baidu.com/");

}

@Override

protected void onStop() {

// 清理缓存

if (mWebView != null) {

mWebView.loadUrl("about:blank");

mWebView.loadDataWithBaseURL(null, "", "text/html", "utf-8", null);

mWebView = null;

}

super.onStop();

}

}

你可能感兴趣的:(android,webview第三方框架)