Crosswalk从JavaScript调用Java方法

我现在正在使用人行横道。 当用户单击HTML中的按钮时,我需要调用Java方法,如下所示:

Start 

我不确定Crosswalk扩展是否是我想要的,这对于调用Java函数似乎是如此重要。

有更简单的方法吗? 或者在这种情况下我应该将Cordova与Crosswalk一起使用?

如果您只将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

这是关于如何在人行横道XWalkView中使用js调用java函数。 如何使用XWalkView参考这个答案 。

参考文献:

人行横道通话-Java的方法-用JavaScript的

XWalkView手册

下面是从js和通知调用java的过程。

将此添加到XWalkView中的活动

 webSettings.setJavaScriptEnabled(true); mXWalkView.addJavascriptInterface(new JsInterface(), "NativeInterface"); 

而这,你也使它成为一个阶级

 public class JsInterface { public JsInterface() { } @JavascriptInterface public void act() { //do something } } 

并在HTML页面中

  

当您导入JavascriptInterface时,请注意,确保您导入了确切的一个。

 import org.xwalk.core.JavascriptInterface; 

不是这个,这是webview

import android.webkit.JavascriptInterface;

如果你导入这个,当你在页面上操作时,这将导致没有动作,并且你的android工作室中会出现以下错误。

12-02 13:24:49.921 12376-12376 / com.xxxxxx.app E / chromium:[错误:xwalk_autofill_client.cc(121)]未在virtual void xwalk中实现:: XWalkAutofillClient :: OnFirstUserGestureObserved()

通常在导入JavascriptInterface时,第一个就是我们想要的,如下图所示。

但有时当您从webview更改为XWalkView时,您可能会忘记更改JavascriptInterface。

在此处输入图像描述