JavascriptInterface调用但未显示Toast

时间:2013-04-01 18:01:03

标签: java javascript android

我有一个webview忽略了我所有的javascript界面​​方法,或者至少看起来像。当我从普通浏览器运行网站时,它会抛出错误,因为接口未按预期定义,但这使我相信接口方法至少被调用,但其他错误。任何人都可以帮我搞清楚什么?

声明内容

    @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接口类

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,但我也没有任何错误或行为破坏。

1 个答案:

答案 0 :(得分:0)

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