原生对webview内的网页操作空间有限,基本上是设置的问题

可能的疑难杂症问题和解决方案

1.Cannot read property ‘XXX’ of undefined at null

解决方案:
webView.getSettings().setDomStorageEnabled(true);

HTML5 Storage主要有:
sessionStorage: 会话 (session) 级别的数据存储,会话结束后,相关的数据就会被清除掉。
localStorage: 用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
作为 html5 标准的一部分,绝大多数的浏览器都是支持 localStorage 的,但是鉴于它的安全特性(任何人都能读取到它,尽管有相应的限制,将敏感数据存储在这里依然不是明智之举),Android 默认是关闭该功能的。

参考Android WebView 无法打开天猫页面

2.混合https和http内容的时候,图片加载不出来,在浏览器中的Console会有如下警告- Mixed-content

解决方案:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}

在Android5.0 以及以上的系统,当WebView加载的链接为Https开头,但是链接里面的内容,比如图片为Http链接,这时候,图片就会加载不出来,
从Android5.0以后,当一个安全的站点(https)去加载一个非安全的站点(http)时,需要配置Webview加载内容的混合模式,一共有如下三种模式:
MIXED_CONTENT_NEVER_ALLOW:Webview不允许一个安全的站点(https)去加载非安全的站点内容(http),比如,https网页内容的图片是http链接。强烈建议App使用这种模式,因为这样更安全。
MIXED_CONTENT_ALWAYS_ALLOW:在这种模式下,WebView是可以在一个安全的站点(Https)里加载非安全的站点内容(Http),这是WebView最不安全的操作模式,尽可能地不要使用这种模式。
MIXED_CONTENT_COMPATIBILITY_MODE:在这种模式下,当涉及到混合式内容时,WebView会尝试去兼容最新Web浏览器的风格。一些不安全的内容(Http)能被加载到一个安全的站点上(Https),而其他类型的内容将会被阻塞。这些内容的类型是被允许加载还是被阻塞可能会随着版本的不同而改变,并没有明确的定义。这种模式主要用于在App里面不能控制内容的渲染,但是又希望在一个安全的环境下运行。

常见的设置解释

settings.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为falsesettings.setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞
settings.setSupportZoom(true);//是否可以缩放,默认truesettings.setBuiltInZoomControls(true);//是否显示缩放按钮,默认falsesettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放。大视图模式settings.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题settings.setAppCacheEnabled(true);//是否使用缓存settings.setDomStorageEnabled(true);//DOM Storage// displayWebview.getSettings().setUserAgentString("User-Agent:Android");//设置用户代理,一般不用settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);//加载https和http混合模式webview.setWebViewClient(new WebViewClient())//不设置 下一步的网页就会在原生浏览器中打开

其他设置
android 4.4以后webView的适配,setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN)失效,
更好替代方案
1.img后面加一个width=100%,或者是如果是加载的html,直接replaceAll(“< img “,”< img width=100% height=auto”)

2.参考Webview setLayoutAlgorithm

WebView打不开或者显示异常可能原因相关推荐

  1. Android 系统(55)---Android App开发之ANR异常的原因分析及处理总结

    Android App开发之ANR异常的原因分析及处理总结 Android App开发之ANR异常的原因分析及处理总结 ANR的全称是application not responding,根据它的意思 ...

  2. 越不服务器显示异常什么原因,计算机异常问题都有哪些常见类型

    故障与异常问题都是程序员需要长期关注的一个问题,下面我们就通过案例分析来了解一下,计算机异常问题都有哪些常见类型. 1.句柄泄漏 句柄泄漏是进程在调用系统文件之后,没有释放已经打开的文件句柄.一般句柄 ...

  3. Hui-iconfont字符图标不显示或显示异常。

    Hui-iconfont字符图标不显示或显示异常. 近期在做项目时发现Hui-iconfont字符图标,感觉很方便,并且占用空间小,加载快等有点.就决定采用了. 可是在加载图标时通过后台动态加载时显示 ...

  4. RootCause深度分析:为什么DCache常会导致LCD显示异常(数据一致性问题)

    DCache导致LCD显示异常RootCause深度分析 问题描述: L1/L2 Cache简介 问题分析: 问题解决: 如何编程: Invalide Clean HyperRAM: Cache cl ...

  5. Win7下PDF图标显示异常排除

    Win7下PDF图标显示异常排除 文件图标显示异常的原因及检查排除步骤 文件关联异常 图标缓存异常 图标文件损坏 文件图标显示异常的原因及检查排除步骤 文件关联异常 Control Panel\All ...

  6. LCD显示异常分析——开机闪现花屏【转】

    转自LCD显示异常分析--开机闪现花屏 最近在工作中,有同事遇到LCD开机瞬间会闪现雪花屏的问题,而这类问题都有个共同点,那就是都发生在带GRAM的屏上,同样的问题,在休眠唤醒时也会出现. 其实这类问 ...

  7. 解决GitHub中头像显示异常、设置不了头像、README图片无法显示等问题

    解决GitHub中头像显示异常.设置不了头像.README图片无法显示等问题   很多时候在访问 GitHub 官网时容易出现 GitHub 头像显示异常的问题.虽然这个问题无关痛痒,不过对于有强迫症 ...

  8. 桌面html文件图标异常,.htm .html文件图标显示异常的解决办法

    .htm .html文件图标显示异常的解决办法 发布时间:2008-11-22 12:55:25   作者:佚名   我要评论 症状:后缀为Htm和Html的文件图标显示为未关联的应用程序图标,(看着 ...

  9. 一种桌面图标显示异常原因及解决方案

    Win10 系统  桌面图标显示异常如下图 原因:可能是因为修改过文件路径.(答主重命名过路径中某个文件夹). 右键打开属性. 打开更改图标.证实了这是因为路径错误导致的. 解决方案:1.在设置界面手 ...

  10. win 7计算机图标变了,Win7系统桌面图标显示异常统一变成白色的两种解决方法

    Win7系统桌面图标显示异常统一变成白色,如下图所示: Win7系统桌面图标显示异常统一变成白色的两种解决方法: 解决方法一:更改主题 1.右键单击桌面空白处--个性化,随意更改一个主题即可(Win7 ...

最新文章

  1. ResNet50结构
  2. Apache遇到的问题:APR not found
  3. 《MySQL——使用联合索引、覆盖索引,避免临时表的排序操作》
  4. 精通ASP.NET MVC——控制器和动作
  5. oracle数据库执行sql很慢
  6. halcon显示坐标_机器视觉之halcon入门(10)-一文弄懂halcon例程:color_fuse.hdev
  7. Atitit opencv3.0  3.1 3.2 新特性attilax总结
  8. json react 展示工具_如何基于jsoneditor二次封装一个可实时预览的json编辑器组件?(react版)...
  9. java 答题卡_·(B卷)Java期末试卷及答题卡(2005-2006第二学期).doc
  10. Endnote快速上手
  11. 音频格式怎么转换成mp3?
  12. 【AI选股】如何通过python调用通达信-小达实现AI选股(量化又多了一个选股工具)
  13. Tomcat 9下载安装及配置
  14. ubuntu占用空间清理
  15. 创建一个rails入门项目并运行
  16. IdeaUI快捷键注释不在行首
  17. 心电信号越界怎么回事_【心电学】易误诊为起搏器功能异常的心电图表现
  18. 接口限流算法及解决方案
  19. make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libstagefright_intermediates/OMXCodec.o]
  20. MATLAB画对数坐标

热门文章

  1. 18获得触发事件元素节点的方法
  2. V4.0系列软件如何替换授权文件
  3. 苹果白屏一直显示苹果_苹果手机出现白屏要如何修复
  4. fedora20 安装nvidia独立显卡驱动
  5. php手机接收验证码,乐信揭秘php手机接收短信验证码实现编程案例
  6. 树莓派驱动数码管c 语言,用树莓派驱动八段数码管实现倒计时
  7. 微信小程序全国巡回沙龙杭州站-芋头演讲详细内容及PPT
  8. 习惯养成app_如何培养优秀的开发人员沟通技巧,养成不良习惯
  9. ubuntu20.04中安装划词翻译_支持语音录入翻译的小爱同学鼠标让智能设备控制一手掌握...
  10. Leetcode1160. 拼写单词(C语言)