react-native-crosswalk-android
代码骨架借鉴自 https://github.com/lucasferreira/react-native-webview-android webview 替换成 crosswalk https://crosswalk-project.org/
因为 crosswalk 包中包含的 javax* 会导致重复引用,需要在包中去掉 javax,下面的脚本可以得到一个不含 javax 包的 crosswalk aar 文件,需要放到 libs 目录下,脚本在 libs/getCrosswalk.sh
#!/bin/sh ver="17.46.448.10"wget https://download.01.org/crosswalk/releases/crosswalk/android/maven2/org/xwalk/xwalk_core_library/${ver}/xwalk_core_library-${ver}.aarunzip -j xwalk_core_library-${ver}.aar classes.jarzip -d classes.jar javax\*zip -r xwalk_core_library-${ver}.aar classes.jarrm -f classes.jar
Installation
npm install react-native-crosswalk-android --savecp ./node_modules/react-native-crosswalk-android/libs/xwalk_core_library-17.46.448.10.aar android/app/libs
Add it to your android project
- In
android/setting.gradle
...include ':react-native-crosswalk-android', ':app'project(':react-native-crosswalk-android').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-crosswalk-android')
- In
android/build.gradle
...allprojects { repositories { mavenLocal() jcenter() flatDir { // <------ add this line dirs 'libs' // <------ add this line } // <------ add this line }}
- In
android/app/build.gradle
...dependencies { ... compile project(':react-native-crosswalk-android')}
- Register Module (in MainActivity.java)
// <--- import
Example
var React = ;var StyleSheet = React; var WebViewAndroid = ; var SITE_URL = "https://www.google.com"; var WebViewAndroidExample = React; var styles = StyleSheet;
Tips for Video (HTML5) inside WebView
To work with some html5 video player inside your Webview, I recommend you to set the android:hardwareAccelerated="true" in your AndroidManifest.xml file.
More info here: http://stackoverflow.com/questions/17259636/enabling-html5-video-playback-in-android-webview
License
MIT