4

すべての JavaScript インターフェイス メソッドを無視する、または少なくともそのように見える Web ビューがあります。通常のブラウザーから Web サイトを実行すると、予想どおりインターフェイスが定義されていないためエラーがスローされますが、これにより、少なくともインターフェイス メソッドが呼び出されていると思われますが、何か他のことが間違っています。誰かが私が何を理解するのを手伝ってくれますか?

ものを宣言する

    @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.");
        }
    }

キオスク インターフェイス クラス

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();
}

トーストは表示されませんが、エラーや壊れた動作も発生しません。

4

1 に答える 1

0

アプリの新しいバージョンをインストールする場合でも、キャッシュをクリアすることが重要であることがわかりました。

于 2013-04-02T15:44:51.897 に答える