API21では、String url
の代わりにWebResourceRequest request
を使用するようにshouldInterceptRequestメソッドを変更しました。 WebViewClient
を拡張して両方のメソッドを扱う汎用クラスを書く方法はありますか? マイ最小APIのバージョンは KrystianAPI21のshouldInterceptRequestパラメータの変更方法
6
A
答えて
13
おかげで、Googleが代わりに文字列のURL
ないのWebResourceRequest要求を使用するようにshouldInterceptRequest方法を変更し、彼らは二shouldInterceptRequest()
方法を追加しました。どちらもAPIレベル21+で利用できます。 String
はAPIレベル11以上でご利用いただけます。 String
は推奨されていないとマークされていますが、下位互換性のためにかなりの期間、String
の亜種をサポートする必要があります。
WebViewClientを拡張して両方のメソッドを処理する汎用クラスを作成する方法はありますか?
ビルトインshouldInterceptRequest()
のWebResourceRequest
バージョンの実装は単にshouldInterceptRequest()
のString
実装を呼び出します:だから
public WebResourceResponse shouldInterceptRequest(WebView view,
WebResourceRequest request) {
return shouldInterceptRequest(view, request.getUrl().toString());
}
(今のようthe source codeから)
を、次の2つの選択肢があり:
WebResourceRequest
が不要な場合はString
版をオーバーライドするだけで、関連するすべてのAPIレベルで使用されます。WebResourceRequest
がAPIレベル21+で使用され、String
エディションがAPIレベル11-20で使用されることを認識して、両方をオーバーライドします。
関連する問題
- 1. webview shouldinterceptrequestの例
- 2. postgresql.confパラメータの表示/変更方法
- 3. パラメータの値を変更せずにパラメータの値を変更する方法
- 4. 関数のオーバーライドshouldInterceptRequest on Android
- 5. shouldInterceptRequest for Android Froyo(2.2)
- 6. webserviceのバージョンでのパラメータの変更を処理する方法
- 7. 他のパラメータを変更するときに最初のデフォルト関数パラメータを変更しない方法
- 8. 式のパラメータの種類を変更する方法は?
- 9. Visual StudioのデフォルトのMSTest、VSTestパラメータを変更する方法
- 10. SSRSのデフォルトの複数値パラメータを変更する方法
- 11. スレッド関数のvoid *パラメータの変更方法
- 12. 春のページ番号、Uriのパラメータを変更する方法
- 13. jqGridのsidx、sord、filtersのパラメータ名を変更する方法
- 14. カメラのパラメータ(自動露出、シャッタースピード、ゲイン)の変更方法は?
- 15. インターセプト法の要求と変更パラメータ値
- 16. MarshmallowでAPI21のLocationListenerを使用
- 17. Amazon RDSインスタンスのmy.iniパラメータを変更する方法
- 18. ドッカーコンテナのパラメータを変更して起動する方法は?
- 19. 実行時にパラメータの値を変更する方法は?
- 20. 方法の変更第二パラメータ 'YoutubeRecyclerAdapter' 'コンテキスト' から 'コールバック<...>' に
- 21. debian grubファイルのパラメータを変更する方法
- 22. SQLのパラメータに基づいてクエリを変更する方法
- 23. ループ内でgetElementByIdのパラメータを変更する方法
- 24. AWS Elastic Beanstalkでは、php.iniのパラメータを変更する方法
- 25. パラメータの変更のJLabel
- 26. パラメータを使用して関数内のグローバル変数を変更する方法
- 27. Verilogのパラメータ値を変更
- 28. パラメータ変更時のリロードビュー
- 29. Crystalレポートのパラメータを変更
- 30. Androidスタジオ2.2.3 - minSdk(API21)> deviceSdk(API17)
ありがとうCommonsWareは、実際には両方のメソッドを実装し、API21からのメソッドで@TargetApi(Build.VERSION_CODES.LOLLIPOP)を使用していました。 – Krystian
私は文字列のバージョンをオーバーライドするだけでいいと思う。 –