![](/img/trans.png)
[英]How to call a function in WebView Javascript from Android Java without delay?
[英]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.