現象
webViewでリンクをクリックした時にブラウザで開かないようにするためshouldOverrideUrlLoadingでfalseを返す必要があるが、
Overrides deprecated method in 'android.webkit.WebViewClient'
This inspection reports where deprecated code where deprecated code is used in the specified inspecion scope.
と表示されてしまうThis inspection reports where deprecated code where deprecated code is used in the specified inspecion scope.
サンプルコード
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WebView webView = (WebView) findViewById(R.id.webview); // WebViewClientの設定 webView.setWebViewClient(new WebViewClient() { @TargetApi(Build.VERSION_CODES.N) @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { // view.loadUrl(request.getUrl().toString()); return false; } // 新しいURLが指定されたときの処理を定義 @SuppressWarnings("deprecation") @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // 別のActivityやアプリを起動する場合 //return true; // WebView内に読み込み結果を表示する場合 return false; } // ページ読み込み開始時の処理 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { Toast.makeText(MainActivity.this, "読み込み開始", Toast.LENGTH_SHORT).show(); } // ページ読み込み完了時の処理 @Override public void onPageFinished(WebView view, String url) { Toast.makeText(MainActivity.this, "読み込み完了", Toast.LENGTH_SHORT).show(); } // ページ読み込みエラー時の処理 @SuppressWarnings("deprecation") @Override public void onReceivedError(WebView view, int errorCode, String description, String url) { Toast.makeText(MainActivity.this, "通信エラー", Toast.LENGTH_SHORT).show(); } }); }
AndroidN未満の対策も入れているつもりだけど動作未確認