15

WebViewClient.shouldOverrideUrlLoadingを使用して、WebViewでのリンククリックをキャッチしています。これは約95%の時間で機能しますが、単に呼び出されない場合もあります。

私はこれらの3つの状況でそれに気づきました:

  1. リンクがページを指している場合、それらはすでに存在しています。これはそれほど大したことではなく、バグが報告されています。
  2. ページがまだ読み込まれている間に、ユーザーがリンクをクリックしても、それをキャッチすることはめったにありません。を呼び出さずにリンクを開くだけshouldOverrideUrlLoadingです。
  3. 無作為に。過去数か月にわたってこれを実験していると、時々それがうまくいかないことに気づきました。まれですが、実際に発生します。

今、私の質問は主に問題2を修正する方法です。他の問題はそれほど重要ではないからです。ただし、誰かが1または3のいずれかを解決した場合は、それについて聞きたいと思います。

また、でさまざまな戻り値を試しましshouldOverrideUrlLoadingたが、常にtrueを返すことが最良の結果であるように見えることに気付きましたが、上記の問題は依然として発生します。

4

2 に答える 2

7

WebViewHTMLが独自のものである場合は、従来のすべてのリンクを、 viaに挿入された独自のJavaオブジェクトへの呼び出しに置き換えることができますaddJavascriptInterface()。そうすれば、あなたはもはやに依存しなくなりますshouldOverrideUrlLoading()

それ以外の場合は、ユーザーがページを操作できないようにしてくださいonPageFinished()

WebView私はこの問題に遭遇したことはありませんが、恣意的なコンテンツを多用したこともありません。

于 2011-02-26T21:28:42.283 に答える
5

を変更するページでjsを使用してWebページを変更しようとすると、同様の問題が発生しましたwindow.location。URLスキーム/プロトコルを変更すると、WebビューがキャッチされることがわかりますshouldOverrideUrlLoading。HTMLを所有していないので、これは役に立たないことはわかっていますが、この問題に遭遇した他の人には役立つと思いました。

于 2011-07-07T21:23:56.350 に答える