Android 上の WebView での JavaScript 関数の呼び出し
WebView を使用して Web コンテンツを Android アプリケーションに組み込む場合、多くの場合、基盤となるアプリケーションと対話する必要があります。 Web ページ内の JavaScript。これは、Android コードから JavaScript 関数を呼び出すことで実現できます。
次のシナリオを考えてみましょう: Android アプリから JavaScript 関数を呼び出し、トースト経由でメッセージを表示します。呼び出される JavaScript 関数は次のように定義されます:
function testEcho(message) { window.JSInterface.doEchoTest(message); }
Android アプリでは、JavaScript を有効にして、公開された Java メソッドを含むクラスを登録できます:
myWebView.getSettings().setJavaScriptEnabled(true); myWebView.addJavascriptInterface(myJSInterface, "JSInterface");
よくある落とし穴
説明したアプローチに従っているにもかかわらず、JavaScript 関数が発動されていない。よくある見落としの 1 つは、JavaScript 関数に渡されるパラメーターに二重引用符が含まれていないことです。以下に示すように、パラメーターが引用符で囲まれていることを確認します。
myWebView.loadUrl("javascript:testEcho('Hello World!')");
外部 JavaScript ファイル
HTML 内で参照および使用されている外部 JavaScript ファイルが存在する場合、 JavaScript 関数の実行に影響を与える可能性があります。外部スクリプトはグローバル スコープを変更したり、独自のイベント ハンドラーを導入したりする可能性があり、WebView による JavaScript コマンドの処理に干渉する可能性があります。次の点を考慮してください:
以上がAndroid の WebView から JavaScript 関数を確実に呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。