已调用 JavascriptInterface 但未显示 Toast

标签 java javascript android

我有一个 webview 忽略了我所有的 javascript 接口(interface)方法,或者至少看起来是这样。当我从普通浏览器运行该网站时,它会抛出错误,因为没有按预期定义接口(interface),但这让我相信至少调用了接口(interface)方法,但还有其他问题。谁能帮我弄清楚是什么?

声明内容

    @Override
    protected void onPostExecute(ValidationResult validation)
    {
        if (validation.wasSuccessful)
        {
            URL = validation.message;
            wv = (WebView) findViewById(R.id.webView);              
            wv.addJavascriptInterface(new KioskInterface(wv.getContext()), "Android");
            WebSettings ws = wv.getSettings();
            ws.setJavaScriptEnabled(true);
            wv.loadUrl(URL);
        }
        else
        {
            errorAlert(title, msg + "\nContact network management.");
        }
    }

Kiosk 接口(interface)类

public class KioskInterface {
    Context c;

    KioskInterface(Context context)
    {
        c = context;
    }

    @JavascriptInterface
    public void showToast()
    {
        Toast.makeText(c, "Hiding Keyboard", Toast.LENGTH_LONG).show();
    }
}

Javascript

function example() {
    Android.showToast();
}

我从来没有看到任何 Toast,但我也没有收到任何错误或损坏的行为。

最佳答案

事实证明,清除缓存很重要,即使您正在安装新版本的应用程序也是如此。

关于已调用 JavascriptInterface 但未显示 Toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15748811/

相关文章:

javascript - Node.js 获取内存使用率高的通知

android - 包括 Google Play 下载器库 | APK文件扩展库

javascript - ScrollView 不在 Nativescript-Vue 中滚动

java - 有没有办法确保请求来自受信任的 UI 应用程序?

java - 如何使用编辑文本过滤自定义 ListView?

java - 如何随机设置按钮的文本?

javascript - 使用WebAudio API,如何在浏览时添加短交叉淡入淡出以避免音频 "popping"

java - 如何在java中获取用户的操作系统区域设置

javascript - 如何在庞大的数据集(angular.js)上提高 ngRepeat 的性能?

android - 为什么在大多数 Android 日志记录代码中使用 TAG