gpt4 book ai didi

javascript - Android WebView 对 Java 函数的异步调用

转载 作者:行者123 更新时间:2023-11-30 02:03:54 32 4
gpt4 key购买 nike

我正在寻找一种从 JS 异步调用 Android 原生代码的方法

我有一个包含以下代码的主 Activity ,使 JS 可以访问 native 代码:

 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() 函数就会同步执行。我需要的是以同步方式调用方法 SuperDuperComplexFunction();(就像 AJAX 请求一样),并在方法成功 时采取一些行动。有什么想法吗?

最佳答案

一种选择是在 java 代码中使用 Http 服务器,然后在本地主机上进行 AJAX 调用。这样 Javascript 调用将与任何其他 AJAX 调用完全相同,并且由于您控制 Http 服务器,您可以让它调用您的 SuperDuperComplexFunction()

我用过 NanoHttpd过去对于某种相似但不完全相同的东西。

关于javascript - Android WebView 对 Java 函数的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31054218/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com