Ovi*_*lia 3 java android webview cordova crosswalk-runtime
我现在正在使用人行横道.当用户单击HTML中的按钮时,我需要调用Java方法,这可能如下所示:
<a href="#" onclick="callJava()">Start</a>
Run Code Online (Sandbox Code Playgroud)
我不确定Crosswalk扩展是否是我想要的,这对于调用Java函数似乎是如此重要.
有更简单的方法吗?或者在这种情况下我应该将Cordova与Crosswalk一起使用?
这里是关于如何在人行横道XWalkView中使用js调用java函数.如何使用XWalkView参考这个答案.
参考文献:
下面是从js和通知调用java的过程.
将此添加到您在XWalkView中的活动
webSettings.setJavaScriptEnabled(true);
mXWalkView.addJavascriptInterface(new JsInterface(), "NativeInterface");
Run Code Online (Sandbox Code Playgroud)
而这,你也把它变成了一个类
public class JsInterface {
public JsInterface() {
}
@JavascriptInterface
public void act() {
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
并在HTML页面中
<button onclick="NativeInterface.act()">Call Java Here</button>
Run Code Online (Sandbox Code Playgroud)
当您导入JavascriptInterface时,请注意,确保您导入了确切的一个.
import org.xwalk.core.JavascriptInterface;
Run Code Online (Sandbox Code Playgroud)
不是这个,这是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.
归档时间: |
|
查看次数: |
5241 次 |
最近记录: |