Calling JavaScript Methods from Crosswalk with Java
xwalkView.load("javascript:" + jsCode, null)
References
http://stackoverflow.com/questions/24601087/crosswalk-call-js-function-from-java-on-android
xwalkView.load("javascript:" + jsCode, null)
References
http://stackoverflow.com/questions/24601087/crosswalk-call-js-function-from-java-on-android
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
References
https://crosswalk-project.org/documentation/android/android_remote_debugging.html
mXWalkView = (XWalkView) findViewById(R.id.activity_main); XWalkSettings webSettings = mXWalkView.getSettings(); webSettings.setJavaScriptEnabled(true);
public class JsInterface { public JsInterface() { } @JavascriptInterface public String sayHello() { return "Hello World!"; } }
mXWalkView.addJavascriptInterface(new JsInterface(), "NativeInterface");
<a href="#" onclick="clicked()">Say Hello</a>
function clicked() { alert(NativeInterface.sayHello()); }
References
http://zhangwenli.com/blog/2014/08/25/crosswalk-calling-java-methods-with-javascript/
https://developer.android.com/guide/webapps/webview.html#BindingJavaScript
http://stackoverflow.com/questions/25478434/crosswalk-call-java-method-from-javascript
download Crosswalk .aar file
https://download.01.org/crosswalk/releases/crosswalk/android/maven2/
Then copy to libs folder
allprojects { repositories { jcenter() flatDir { dirs 'libs' } } }
compile(name:'xwalk_core_library', ext:'aar')
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="iterator.ir.bmi.MainActivity" tools:ignore="MergeRootFrame"> <org.xwalk.core.XWalkView android:id="@+id/xwalkview" android:layout_width="match_parent" android:layout_height="match_parent"/> </FrameLayout>
public class MainActivity extends XWalkActivity { XWalkView mXWalkView; @Override protected void onXWalkReady() { // Do anyting with the embedding API mXWalkView.load("file:///android_asset/www/index.html", null); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mXWalkView = (XWalkView) findViewById(R.id.xwalkview); } }
References
https://developer.chrome.com/multidevice/webview/gettingstarted
https://crosswalk-project.org/documentation/android/embedding_crosswalk_rvw.html
http://stackoverflow.com/questions/40256449/intellij-idea-how-to-import-aar
https://download.01.org/crosswalk/releases/crosswalk/android/maven2/
Shared Mode
config.xml :
<preference name="xwalkMode" value="shared" />
Multi-APK Mode
<preference name="xwalkMultipleApk" value="false" />
Optional: Java Heap Size
environment variable :
_JAVA_OPTIONS=-Xmx512M
References
https://taco.visualstudio.com/en-us/docs/cordova-crosswalk/