1. ホーム
  2. android

[解決済み] shouldOverrideUrlLoading` は本当に非推奨なのですか?代わりに何を使えばいいのでしょうか?

2022-02-14 17:23:39

質問

shouldOverrideUrlLoading"は本当に非推奨なのでしょうか?もしそうなら、代わりに何を使えばいいのでしょうか?

どうやら shouldOverrideUrlLoading は非推奨 Android Nをターゲットにした で、API 19から最新のAndroid N(ベータ)までアプリを動作させる必要があります。私はAndroid Nの新機能(データセーバーなど)を使用しているので、これらの新機能を使用する必要があるため、マシュマロをターゲットにしても問題の解決にはつながりません。

public boolean shouldOverrideUrlLoading(WebView webview, String url) {
    if (url.startsWith("http:") || url.startsWith("https:")) {
        ...
    } else if (url.startsWith("sms:")) {
        ...
    }
    ...
}

そして、これがAndroid Studioが出したメッセージです。

android.webkit.WebViewClient' の非推奨のメソッドをオーバーライドします。 この検査では、指定された検査範囲内で非推奨のコードが使用されている場所を報告します。

Googleはその非推奨について何も言っていない .

を使うのはどうなんだろう。 @SuppressWarnings("deprecation") は、私はAPI 19以来、最新のAndroid Nのベータ版(とそれがリリースされたときにその最終版)までのすべてのデバイス上で動作するようになります、私はそれを自分でテストすることはできません、私はそれを使用したことがないと私はそれが動作することを確認する必要がありますので、、、誰もが伝えることができますか?

解決方法は?

<ブロッククオート

私が使っているバージョンは、Android Developer Docsと全く同じで、文字列の名前を除いて、彼らは "view" を使い、私は "webview" を使いましたが、他の部分は同じです。

いいえ、そうではありません。

N Developer Previewで新たに追加されたものは、このようなメソッドのシグネチャを持っています。

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)

Nを含むすべてのAndroidバージョンでサポートされているものは、このようなメソッドシグネチャを持っています。

public boolean shouldOverrideUrlLoading(WebView view, String url)

では、すべてのバージョンで動作させるためには、どうすればいいのでしょうか?

非推奨のものをオーバーライドする、つまり String を第2パラメータとして指定します。