複数のクライアント用にパーソナライズされたアプリにメソッドshouldOverrideUrlLoadingを使用しています。各クライアントには、Webビューにロードする独自のWebページがあります。私の問題はこれです:アプリはクライアントAと彼のWebページには完璧に機能しますが、クライアントのB Webページ(クライアントAとはまったく関係ありません)には機能しません。私がテストした違いは、ロードされたコンテンツ内でWebビューにアクセスされるリンクのクライアントのB状況では、shoulOverrideUrlLoadingが機能せず(呼び出されることはありません)、クライアントのAWebページは完全に機能することです。もう1つのことは、クライアントのB Webページは、2.1や2.3.6などの一部のAndroidバージョンでのみ機能するわけではありませんが、2.3.3、2.3.5、4.0.2、または4.0.3では正常に機能します。
ですから、これはちょっと奇妙です。何か知っていることがあれば、助けてください!ありがとう!:)
編集:ウェブページがjavascriptを介して要求されたリンクをロードしない場合、shouldOverrideLoadingが呼び出されず、javascriptが使用されていない場合に機能することに気付きました!!! しかし、webview.setJavaScriptEnabled(false)を設定すると、機能します!!! アプリでJavaScriptを有効にする必要があります。これは、ウェブページが通常、読み込み以外の目的でJavaScriptを使用しているため、shouldOverrideUrlLoadingが呼び出されないという理由だけで無効にできないためです。
編集2:より正確には:
これは機能し、shouldOverrideUrlLoadingが呼び出されます。
<p onclick="location.href='linkHere'">
NewLink
<span class="icon-arrow"></span>
</p>
これは機能せず、shouldOverrideUrlLoadingは呼び出されません。
<a class="link-inherit" href="linkHere">
NewLink
<span class="icon-arrow"></span>
</a>