【发布时间】:2015-06-25 15:11:28
【问题描述】:
我正在寻找一种从 JS 对 Android 的本机代码进行异步调用的方法
我有一个带有以下代码的 Main Activity,以使 JS 可以访问本机代码:
webView.addJavascriptInterface(new BindingHelper(this), "Android");
webView.loadUrl("file:///android_asset/www/index.html");
BindingHelper 类包含如下内容:
@JavascriptInterface
public void showToast(String toast) {
Toast.makeText(theContext, toast, Toast.LENGTH_SHORT).show();
}
@JavascriptInterface
public String SuperDuperComplexFunction () {
//A function that will need some time to finish...
return "{}";
}
前面的方法可以从Index.html链接的JS中调用如下:
<script type="text/js">
Android.showToast("Toast");
</script>
这样showToast() 函数就会同步执行。我需要的是以 aSync 方式调用方法 SuperDuperComplexFunction();(就像 AJAX 请求一样),并且当方法 success 采取一些措施时。
有什么想法吗?
【问题讨论】:
-
mWebView.loadUrl("javascript:" + script)和mWebView.evaluateJavascript(script, null);取决于 API 级别 ... -
在这里查看我的答案:stackoverflow.com/questions/30816325/…
标签: javascript java android asynchronous webview