こんにちは、私は web-view を使用しているアンドロイドを開発しています。私の Web ビューには、その中に複数のページがあります。したがって、私の意図した機能は、デバイスの戻るボタンを押すと前の Web URL に戻り、最後の Web ページではそのアクティビティを閉じて前のアクティビティに戻るようなものです。次の方法で試してみましたが、新しいデバイスでは正常に動作しますが、古い Android バージョンでは正しく動作しません。私のコードは次のようになります。
webView = new WebView(this);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains(URLManager.URL_DICOM_BACK_PRESSED_URL)) {
processBackPressed();
return true;
} else {
return super.shouldOverrideUrlLoading(view, url);
}
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
if (failingUrl.contains(URLManager.URL_DICOM_BACK_PRESSED_URL)) {
processBackPressed();
} else {
showError("Server unreachable");
}
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
runOnUiThread(new Thread() {
@Override
public void run() {
super.run();
if(!webviewLoaded) {
webviewLoaded = true;
content.removeAllViews();
content.setOrientation(LinearLayout.VERTICAL);
// LLM.addInParent(content, textView, -1001, -999, 0);
LLM.addInParent(content, webView, -1001, 0, 1);
}
}
});
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url);
@Override
public void onBackPressed() {
if (webView != null && webView.canGoBack()) {
webView.goBack();
} else {
processBackPressed();
}
}
public void processBackPressed() {
super.onBackPressed();
finish();
}
上記のコードは、新しい Android バージョンでは問題なく動作しますが、古いバージョンでは動作しません。私が観察したことshouldOverrideUrlLoading
は、古いバージョンでは機能しません。
私は何か間違ったことをしていますか?助けが要る。ありがとうございました。