2011-12-30 4 views
0

WebViewでは、複数のWeb ページからJavaScriptInterfaceにアクセスするには、mWebView.loadUrl( "http:// 10.241 .139.45:9081/amexco/login.html ")webview:複数のWebページからjavacriptコードを処理する方法

私のプロジェクトの資産フォルダで、私が持っている:

login.html 
page1.html 
page2.html 

...と、ここでは関係WebViewのコードです:

webView.addJavascriptInterface(new JavaScriptInterface(), "android"); 
webView.loadUrl("file:///android_asset/index.html"); 

ので、異なる時点で、ユーザーが見てもよいですindex.html、page1.htmlなどです。私が知る限り、index.htmlのJavaScriptだけが "window.android.someMethodName()"を介してJavaScriptInterfaceにアクセスできます。私がpage1.htmlから "window.android.someMethodName()"を呼び出そうとすると、 "window.android"は定義されていません。

ので、ユーザは login.htmlページからのWebViewを起動し、別のページをナビゲート.. 私の要件は、私はアンドロイドの活動への復帰を言っボタンを持っている私のWebページの最後のページです。ユーザーがナビゲーションの最後のページをクリックすると、ユーザーはアンドロイドの活動に戻る必要があります。

htmlページで呼び出すことができますが、このメソッドは、ロードした最初のページ(つまりこのメソッドのみ)からこのメソッドを呼び出すと動作します私はこれが動作していないのWebView naviagationの最後のページからこのメソッドを呼び出した場合。

いずれかが、この中で私を助けることができます。..動作します。

+0

アクティビティに戻るには、JavaScriptが必要ですか? – Flo

答えて

0

window.を取り除く。あなたが注入されている場合仮想グローバルandroidという名前のメソッドは、android.someMethodName()と呼びます。

また、WebViewで後続のWebページを表示していることを確認してください。既定では、リンクはユーザーの既定のWebブラウザーを起動します。このWebブラウザーには、仮想グローバルが挿入されていません。

+0

こんにちは、お返事ありがとうございます。しかし、アンドロイドの複数のページのイベントを処理するコードスニペットサンプルを私に書いてください。 – user626570

+0

@ user626570:「コードスニペット」はありません。登録されたJavaScriptインターフェイスは、 'WebView'に読み込まれているものに関係なく動作するはずです。これはページ単位ではなく、 'WebView'ベースで登録されます。 – CommonsWare

関連する問題