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();
}
}