2013-05-21 37 views
15

shouldOverrideUrlLoadingメソッドはいつ呼び出されますか?Android Webview shouldOverrideUrlLoadingメソッド

webView.setWebViewClient(new WebViewClient(){ 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 


    } 
}); 
  1. それは、URLの最初のロード時に呼び出されていますか?例えばwebView.loadUrl("file:///android_asset/html/index.html");
  2. ウェブビューのURLが変更されるたびに呼び出されますか?

参考情報はありますか?私は見つけませんでした。ありがとう

+0

[回答](http://stackoverflow.com/a/6739042/1503078)を参照してください。また、loadUrlを使用しているときに 'shouldOverrideUrlLoading'が呼び出されていないことを確認しました。 – erdemlal

答えて

10
  1. しかし、WebViewがユーザーから要求したものとは異なるURLを読み込むときに呼び出されます。

  2. loadUrl()を呼び出すと、shouldOverrideUrlLoading()メソッドがトリガーされます。 (新しいURLがロードされようとしている時のみ。)

は、ホストアプリケーションに新しいURLが現在のWebViewにロードされようとしているときに制御を引き継ぐためにチャンスを与えます。 WebViewClientが提供されていない場合、デフォルトでWebViewは、アクティビティ ManagerにURLの適切なハンドラを選択させるよう求めます。 WebViewClientが の場合、trueはホストアプリケーションがURLを処理することを意味します。 falseを返すと、現在のWebViewがURLを処理します。

参考:以下はpublic boolean shouldOverrideUrlLoading (WebView view, String url)

+4

いいえ、単に' loadUrl() 'を呼び出すと' shouldOverrideUrlLoading() 'がトリガーされません。新しいURLが読み込まれる直前です。 –

+2

@HenriquedeSousaこんにちは、あなたの貴重なdownvoteに感謝します。私はもう一度コンセプトを学ぶのに役立ちます:)。あなたの答えを追加してください。それは他人や私にとっても役立ちます。 –

+0

あなたのメッセージを編集して、人々があなたの答えに惑わされることなく貴重な時間を失うことがないように、私はもう一度upvoteに喜んでくれるでしょう:) –

1

は、あなたの両方の質問のための答えです:document 1として

、それは新しいURLが現在のWebViewでロードしようとするたびに管理します。

+0

webviewに読み込まれた最初のURLはどうですか? –

+0

上記の@JRGaliaは両方の質問の回答です。 –

関連する問題