fci*_*iri 8 java android webview browser-history android-webview
我有Android Web View的问题.当我覆盖函数shouldOverrideUrlLoading在我的类中扩展WebViewClient然后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;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的活动中:
@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);
}
Run Code Online (Sandbox Code Playgroud)
问题是函数webView.canGoBack(总是在我的活动中)总是返回false:
@Override
public void onBackPressed() {
//ALWAYS FALSE
if (webView.canGoBack()) {
webView.goBack();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我不覆盖shouldOverrideUrlLoading,则onBackPressed按预期工作.我的代码有什么问题?
谢谢
[编辑]:我也试过(没有成功)以这种方式创建webViewClient:
ebView.setWebViewClient(new SMWebViewClient());
Run Code Online (Sandbox Code Playgroud)
当前发布的Chrome(63+)似乎存在问题.我下载了Chrome Dev(65+),将默认的webview更改为Chrome Dev 65+,webview.canGoBack()工作正常.
以下是一些关于bug的报道:https: //bugs.chromium.org/p/chromium/issues/detail?id = 794020
Chrome Dev下载网址:https: //play.google.com/store/apps/details?id = com.chrome.dev
更改默认网页浏览:https://www.chromium.org/developers/androidwebview/android-webview-beta
看起来我们需要等待一段时间才能获得新的Chrome稳定版更新.
| 归档时间: |
|
| 查看次数: |
2426 次 |
| 最近记录: |