[英]Cordova call JavaScript function from Java without webview
How can we call JavaScript function from Java. 我们如何从Java调用JavaScript函数。 For example i have sayHello function which is in www/js/app.js.
例如,我在www / js / app.js中有sayHello函数。 I need to write a method in java which will call this sayHello and give result back using cordova.
我需要在Java中编写一个方法,该方法将调用此sayHello并使用cordova返回结果。
sayHello: function(name) {
return "Hello "+name;
}
Try this 尝试这个
//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);
}
}
Assuming you have a class 假设你有一堂课
public class MyCordovaPlugin extends CordovaPlugin
You would have a method 你会有办法
@Override
public void initialize (CordovaInterface cordova, CordovaWebView webView) {
//and call your method
executeJavascript("sayHello('bear')", webView);
}
Finally i got. 终于我明白了。
we need to create java script interface for call back to java. 我们需要创建Java脚本接口来回调Java。 Here is my complete code.
这是我完整的代码。
webView.addJavascriptInterface(mActivity, "callBack");
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("javascript: sayHello('yourName'));
@JavascriptInterface
public void helloResult(String value) {
Log.v("Result",name);
}
and script. 和脚本。
sayHello: function(name) {
callBack.helloResult("Hello "+name);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.