私が達成したいことを説明するために、私はできることを書いた後、問題が発生したときに書きました。2つのWebView間で通信できない
1)私はインターフェイスをバインドさロードされたHTML
<button onclick="android.buttonPressed();">Click</button>
に含むwebView1
を持っている:何がうまく機能
private class WebAppInterface1 {
Context context;
WebAppInterface1(Context c) {
context = c;
}
@JavascriptInterface
public void buttonPressed() {
Toast.makeText(context, "buttonPressed", Toast.LENGTH_LONG).show();
}
}
HTMLボタンの作品を。
2)私はその後、私はアンドロイドのコードで
webView2.loadUrl("javascript:f();");
呼び出すと、それはあまりにも動作しますロードされたHTMLに
<script>
function f() {
document.write("bla bla bla");
}
</script>
を含むwebView2
を持っています。
は、今私はwebView1
のボタンを押すことでwebView2
のページを修正したいです。技術的には、私はf()
webView2
内にJSインターフェイスが検出されたときにwebView1
をクリックして呼び出すことを意味します。だから私はこの行を追加する
webView2.loadUrl("javascript:f();");
buttonPressed()
関数は、JSのインターフェイス内に追加します。しかし、それは効果がありません。何が問題を引き起こす可能性がありますか?これらの受信者と送信者を接続する際に制限はありますか?たぶん私はいくつかの設定やアクセス許可を忘れましたか?
私のプロジェクトファイルがありますが、私はできるだけ彼らは同じくらい簡単作ってみました:layout、html、java。他のファイルを編集しませんでした。必要に応じて追加情報を提供することができます。
削除セミコロンwebView2.loadUrl( "ジャバスクリプト:F()")。 –
@AndyDeveloper残念ながらそれは役に立たない – Pavel