繁体   English   中英

Cordova从Java中调用JavaScript函数而不使用webview

[英]Cordova call JavaScript function from Java without webview

我们如何从Java调用JavaScript函数。 例如,我在www / js / app.js中有sayHello函数。 我需要在Java中编写一个方法,该方法将调用此sayHello并使用cordova返回结果。

 sayHello: function(name) {
    return "Hello "+name;
}

尝试这个

//method to exec javascript
private static synchronized void executeJavascript(final String strJS, CordovaWebView myWebView) {

    Runnable jsLoader = new Runnable() {
        public void run() {
            myWebView.loadUrl("javascript:" + strJS);
        }
    };
    try {
        Method post = myWebView.getClass().getMethod("post",Runnable.class);
        post.invoke(myWebView,jsLoader);
    } catch(Exception e) {
        ((Activity)(myWebView.getContext())).runOnUiThread(jsLoader);
    }
}

假设你有一堂课

public class MyCordovaPlugin extends CordovaPlugin

你会有办法

@Override
public void initialize (CordovaInterface cordova, CordovaWebView webView) {
      //and call your method
      executeJavascript("sayHello('bear')", webView);
}

终于我明白了。

我们需要创建Java脚本接口来回调Java。 这是我完整的代码。

webView.addJavascriptInterface(mActivity, "callBack");
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("javascript: sayHello('yourName'));

@JavascriptInterface
public void helloResult(String value) {
   Log.v("Result",name);
}

和脚本。

 sayHello: function(name) {
    callBack.helloResult("Hello "+name);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM