[英]Crosswalk call Java method from JavaScript
我现在正在使用人行横道。 当用户单击HTML中的按钮时,我需要调用Java方法,如下所示:
<a href="#" onclick="callJava()">Start</a>
我不确定Crosswalk扩展是否是我想要的,这似乎只是为了调用Java函数而权重很大。
有没有更简单的方法可以做到这一点? 还是在这种情况下应该将Cordova与Crosswalk一起使用?
这是关于如何在人行横道XWalkView中使用js调用Java函数。 如何使用XWalkView请参考此答案 。
参考文献:
crosswalk-calling-java-methods-with-javascript
以下是从js调用Java的过程,并注意。
将此添加到您的XWalkView活动中
webSettings.setJavaScriptEnabled(true);
mXWalkView.addJavascriptInterface(new JsInterface(), "NativeInterface");
这也使它成为一门课
public class JsInterface {
public JsInterface() {
}
@JavascriptInterface
public void act() {
//do something
}
}
并在html页面中
<button onclick="NativeInterface.act()">Call Java Here</button>
导入JavascriptInterface时,请务必确保导入的是正确的JavascriptInterface。
import org.xwalk.core.JavascriptInterface;
不是这个,这是用于webview
import android.webkit.JavascriptInterface;
如果您导入此文件,则在页面上操作时以及在Android Studio中出现以下错误时,这将不会导致任何操作。
12-02 13:24:49.921 12376-12376 / com.xxxxxx.app E /铬:[ERROR:xwalk_autofill_client.cc(121)]在虚拟void xwalk :: XWalkAutofillClient :: OnFirstUserGestureObserved()中未实现
通常,当您导入JavascriptInterface时,第一个就是我们想要的,就像下面的图片所示。
但是有时候,当您从Webview更改为XWalkView时,您可能会忘记更改JavascriptInterface。
如果仅将XWalkView用作嵌入式视图,则addJavascriptInterface
足以将Java对象注入XWalkView(JavaScript),就像android.webkit.WebView中的addJavascriptInterface
一样:
https://crosswalk-project.org/apis/embeddingapidocs_v2/reference/org/xwalk/core/XWalkView.html
http://developer.android.com/guide/webapps/webview.html#BindingJavaScript
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.