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.XWalkView
android: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;
@Override
protected 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);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.e(TAG, "onCreate: -----");
}
@Override
protected void onResume() {
super.onResume();
Log.e(TAG, "onResume: -----");
if (xWalkWebView != null) {
xWalkWebView.resumeTimers();
xWalkWebView.onShow();
}
}
@Override
protected void onPause() {
super.onPause();
Log.e(TAG, "onPause: -----");
if (xWalkWebView != null) {
xWalkWebView.pauseTimers();
xWalkWebView.onHide();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e(TAG, "onDestroy: -----");
if (xWalkWebView != null) {
xWalkWebView.onDestroy();
}
}
@Override
protected 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);
}
}
}