URL を変更しようとするたびに WebView を適用するロジックがあります。読み込まれたページ内のリンクについては問題ありません。カスタム WebViewClient で shouldOverrideUrlLoading メソッドを使用するだけで実行できます。
しかし、WebView で明示的に loadUrl を呼び出すと、shouldOverrideUrlLoading は起動されません (明らかに、このメソッド内から loadUrl を呼び出すと無限ループが発生します)。
shouldOverrideUrlLoading メソッドが呼び出されるように手動で URL を「プリロード」する方法はありますか?
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.startsWith("myapp://")
{
//Do something
}
else {
view.loadUrl(url);
}
return true;
}
レンダリングされたページ内からリンクをクリックすると、これは正常に機能します。しかし、私が電話した場合:
mWebView.loadUrl("myapp://whatever");
shouldOverrideUrlLoading()
は呼び出されません。私が求めているのは、URLをwebViewに渡して、shouldOVerrideUrlLoading()
実際にロードする前に通過させる方法があるかどうかです。(つまり、新しい URLがロードされよshouldOVerrideUrlLoading()
うとするたびに呼び出されます。それが発生させたいイベントです)