crosswalk 集成
在项目根路径下的 build.gradle 中添加:
buildscript {repositorities {……}}allprojects {repositories {……maven { url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'}}}
在对应 module 的 build.gradle 中添加依赖:
android {......defaultConfig { targetSdkVersion 28 //改为28或以下,28以上会有异常.......ndk {// 设置支持的SO库架构abiFilters 'armeabi-v7a','x86'}}.......sourceSets {main {// 添加libs/so中的so文件jniLibs.srcDirs = ['libs']}}}dependencies {implementation 'org.xwalk:xwalk_core_library:23.53.589.4'
}
libs下放入对应的架构的so库, so 下载地址
在 AndroidManifest.xml 中添加权限:
<Application
android:hardwareAccelerated="true" /> //开启硬件加速<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
布局文件:
<org.xwalk.core.XWalkViewandroid:id="@+id/xWalkWebView"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" />
代码:
package com.gamebox.crosswalktest;import android.content.Intent;
import android.os.Bundle;
import android.util.Log;import org.xwalk.core.XWalkActivity;
import org.xwalk.core.XWalkPreferences;
import org.xwalk.core.XWalkView;public class MainActivity extends XWalkActivity {private static final String TAG = "MainActivity";private XWalkView xWalkWebView;@Overrideprotected void onXWalkReady() {xWalkWebView = (XWalkView) findViewById(R.id.xWalkWebView);
// xWalkWebView.load("http://baidu.com", null);xWalkWebView.loadUrl("https://baidu.com");// 开启调试(然后使用chrome打开页面chrome://inspect)XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Log.e(TAG, "onCreate: -----");}@Overrideprotected void onResume() {super.onResume();Log.e(TAG, "onResume: -----");if (xWalkWebView != null) {xWalkWebView.resumeTimers();xWalkWebView.onShow();}}@Overrideprotected void onPause() {super.onPause();Log.e(TAG, "onPause: -----");if (xWalkWebView != null) {xWalkWebView.pauseTimers();xWalkWebView.onHide();}}@Overrideprotected void onDestroy() {super.onDestroy();Log.e(TAG, "onDestroy: -----");if (xWalkWebView != null) {xWalkWebView.onDestroy();}}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);Log.e(TAG, "onActivityResult: -----");if (xWalkWebView != null) {xWalkWebView.onActivityResult(requestCode, resultCode, data);}}@Override protected void onNewIntent(Intent intent) {super.onNewIntent(intent);Log.e(TAG, "onNewIntent: -----");if (xWalkWebView != null) {xWalkWebView.onNewIntent(intent);}}}