ホームページ >ウェブフロントエンド >jsチュートリアル >Android の WebView から JavaScript 関数を確実に呼び出す方法

Android の WebView から JavaScript 関数を確実に呼び出す方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-25 18:56:16387ブラウズ

How to Reliably Call JavaScript Functions from Android's WebView?

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 コマンドの処理に干渉する可能性があります。次の点を考慮してください:

  • 外部スクリプトが testEcho 関数を再定義したり、WebView の JavaScript 環境の予期される動作と競合したりしないことを確認します。
  • コンソールまたはデバッグ ツールを使用して、 WebView 内での JavaScript の実行を確認し、潜在的な競合を特定します。

以上がAndroid の WebView から JavaScript 関数を確実に呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。