问题

My Android app webview works fine with chrome version 61 or 62, but when I update to version 63. My webviewdoes not store the history and webView.canGoBack() always returns false. But previous versions of chrome work fine. How to solve?

回答1:

This issue should be chromium's bug. We find out the same issue in our apps. the reason of this issue is we invoke Webview's loadUrl methond in shouldOverrideUrlLoading method, when we do that , webview can't go back in some version of chromium. The code below is my workaround:

public class WebViewBugFixDemo extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// todo : set your content layout

final WebView webView = (WebView) findViewById(R.id.webview);

final String indexUrl = "http://www.yourhost.com";

final String indexHost = Uri.parse(indexUrl).getHost();

webView.loadUrl(indexUrl);

webView.setWebViewClient(new WebViewClient() {

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if (isSameWithIndexHost(url, indexHost)) {

return false;

}

view.loadUrl(url);

return true;

}

@Override

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && request != null && request.getUrl() != null) {

String url = request.getUrl().toString();

if (isSameWithIndexHost(url, indexHost)) {

return false;

}

view.loadUrl(url);

return true;

}

return super.shouldOverrideUrlLoading(view, request);

}

});

}

/**

* if the loadUrl's host is same with your index page's host, DON'T LOAD THE URL YOURSELF !

* @param loadUrl the new url to be loaded

* @param indexHost Index page's host

* @return

*/

private boolean isSameWithIndexHost(String loadUrl, String indexHost) {

if (TextUtils.isEmpty(loadUrl)) {

return false ;

}

Uri uri = Uri.parse(loadUrl) ;

Log.e("", "### uri " + uri) ;

return uri != null && !TextUtils.isEmpty(uri.getHost()) ? uri.getHost().equalsIgnoreCase(indexHost) : false ;

}

}

回答2:

Even I was facing this issue. For now You can use intent in ouldOverrideUrlLoading(WebView view, String url){} function and super.onbackpressed() will do its job to maintain history.

public boolean shouldOverrideUrlLoading(WebView view, String url) {

Intent intent = new Intent(MainActivity.this, MainActivity.class);

intent.putExtra("postUrl", url);

startActivity(intent);

return true;

}

来源:https://stackoverflow.com/questions/47771494/issue-in-webview-android-history-when-update-chrome-stable-version-63

android webview 63版,Issue in WebView Android History When update Chrome stable version 63相关推荐

  1. android 4.4版miui v5,基于Android 4.4的MIUI V5要来了

    去年底,MIUI高级工程师孙鹏曾在微博上表示春节过后MIUI将会官方支持Neuxs 5,也就说基于Android 4.4的MIUI V5肯定会有的,至于为什么要等到春节以后,孙鹏表示以谷歌的习惯来看, ...

  2. android 4.4版miui v5,基于Android 4.4的MIUI V5公测开始,适配17款非小米机型

    拼 命 加 载 中 ... 小米MIUI V5此前已经升级为对低端手机有更好的优化的Android 4.4 KitKat,此前仅支持小米自家机型,上月月底才公布了源代码,经过合作开发组的努力,日前终于 ...

  3. Android爬坑之旅之WebView

    不知不觉,Hybird App已经成了目前比较主流的一种开发方式. 对于用户体验要求较高或者与硬件交互较多的功能我们一般都会采用Native原生的方式来实现. 而用户交互少,偏展示类,活动类的功能我们 ...

  4. android webview_在 Flutter 中使用 WebView

    本文示例代码可在微信公众号「01二进制」后台回复「WebView」查看下载 前言 我们知道在开发 Native App 时经常会有打开网页的需求,可供的选择通常只有两种: 在 App 内部打开网页 通 ...

  5. Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复

    Android中的状态保存和恢复 Android中的状态保存和恢复, 包括Activity和Fragment以及其中View的状态处理. Activity的状态除了其中的View和Fragment的状 ...

  6. 20_Android中apk安装器,通过WebView来load进一个页面,Android通知,程序退出自动杀死进程,通过输入包名的方式杀死进程

     场景:实现安装一个apk应用程序的过程.界面如下: 编写如下应用,应用结构如下: <RelativeLayout xmlns:android="http://schemas.an ...

  7. android 获取位置数据库,尝试从webview获取位置时,Android“SQLite数据库无法从/CachedGeoposition.db加载”错误...

    我正在创建一个使用webkit和chrome客户端的android应用程序.我希望能够在网页请求时获取当前位置.我设置的网页适用于普通浏览器就好了.然而,当我尝试访问该网页WebKit中,我不断收到此 ...

  8. android play gif,Play.gif image in android without using webview

    问题 I tried like this, which i found on the net to play gif images: private class MYGIFView extends V ...

  9. android 加载显示富文本——TextView显示富文本和WebView显示富文本,WebView显示图片适配屏幕宽度

    TextView加载显示 添加依赖 implementation 'com.zzhoujay.richtext:richtext:3.0.8' implementation 'com.zzhoujay ...

最新文章

  1. oracle 分页写法
  2. 如何为Android上的产品设计一款合适的图标
  3. pgrouting进行路径规划之入门二
  4. 暖通lisp快捷键_CAD 快捷键一览
  5. 【机器学习】 关联规则Apriori和mlxtend——推荐算法
  6. Python 列表推导式 - Python零基础入门教程
  7. poj 3680 Intervals
  8. Nature重磅综述|关于RNA-seq,你想知道的都在这(续)
  9. dot-files/directories 点开头的文件或文件夹(windows/linux)
  10. HDU 3247 Resource Archiver(AC自动机 + 状压DP + bfs预处理)题解
  11. mysql函数之一:INSTR、LOCATE、POSITION VS LIKE
  12. php symfony2 laravel4 比较,LARAVEL4、Phalcon、Symfony2的优缺点?
  13. QT学习之路五(一个登陆界面)
  14. 【分享】“金蝶云星辰“ 在集简云平台集成应用的常见问题与解决方案
  15. python3-关于GitHub的最基本操作
  16. 北京地区机动车限行交强险保费减免方案
  17. 第15届“开源中国开源世界”高峰论坛成功举办,腾讯获得重要奖项
  18. 19年程序员薪酬报告:平均年薪超70万,40岁后普遍遭遇收入天花板
  19. springMVC源码分析--HandlerMethod
  20. Android 模拟登陆正方教务系统(一)

热门文章

  1. POJ 1028: Web Navigation
  2. 物理学家解说2012
  3. 一个html的文件当中读取另一个html文件
  4. 使用DispatchAction类,为你的系统减肥!
  5. Java 3.基本数据类型
  6. Nginx 从零搭建
  7. 分布式锁的几种实现方式
  8. 检测数(二进制形式)中1的个数
  9. 实易智能DNS单台设备QPS高达28万
  10. centos 5.3 配置sendmail服务器