1

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()うとするたびに呼び出されます。それが発生させたいイベントです)

参照: Android の公式 WebView ドキ​​ュメント

4

2 に答える 2