gpt4 book ai didi

java - webView.canGoBack() 始终为 false

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:04:42 47 4
gpt4 key购买 nike

我对 Android Web View 有疑问。当我在扩展 WebViewClient 的类中覆盖函数 shouldOverrideUrlLoading 时,WebView.canGoBack() 总是返回 false

下面是我的代码

public class SMWebViewClient extends WebViewClient {

@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String uri) {
view.loadUrl(uri);
return true;
}
}

在我的 Activity 中:

@BindView(R.id.main_webview) SMWebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {

...
webView.setWebViewClient(new SMWebViewClient(){
@Override
public void onPageFinished(WebView view, String url){

}
});
webView.clearCache(true);
webView.clearHistory();
webView.loadUrl(Constant.baseUrl + Constant.homeUrl);
}

问题是函数 webView.canGoBack(总是在我的 Activity 中)总是返回 false:

    @Override
public void onBackPressed() {
//ALWAYS FALSE
if (webView.canGoBack()) {
webView.goBack();
}
}

如果我不覆盖 shouldOverrideUrlLoading,那么 onBackPressed 会按预期工作。我的代码有什么问题?

谢谢

[编辑]:我也尝试(但没有成功)以这种方式创建 webViewClient:

ebView.setWebViewClient(new SMWebViewClient());

最佳答案

当前版本的 Chrome (63+) 似乎有问题。我下载了 Chrome Dev (65+),将默认 webview 更改为 Chrome Dev 65+,webview.canGoBack() 工作正常。

这里是一些错误报告的读物: https://bugs.chromium.org/p/chromium/issues/detail?id=794020

Chrome 开发者下载网址: https://play.google.com/store/apps/details?id=com.chrome.dev

更改默认 WebView : https://www.chromium.org/developers/androidwebview/android-webview-beta

看来我们需要等待一段时间才能获得新的 Chrome 稳定版更新。

关于java - webView.canGoBack() 始终为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47846339/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com