惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
D
Docker
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
月光博客
月光博客
小众软件
小众软件
量子位
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
博客园 - 叶小钗
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
博客园 - 司徒正美
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
Hugging Face - Blog
Hugging Face - Blog
GbyAI
GbyAI
C
Check Point Blog

博客园 - 灰色飘零

Hilt 依赖注入实战指南 Android R8适配全流程详解 AI Coding逐步引导式开发,从零到一生成完整技术方案 AI 时代的新项目技术最佳选型 如何建立人类与 AI 的协作习惯 【实战】用 AI 吃透 Git Commit:从代码修改到原理拆解 + 学习规划 端侧大模型实践 - 生成预测模型&模型轻量化&端侧部署 端侧大模型实践-ESC上实现大模型轻量化功能 端侧大模型实践 - Hadoop + Spark 配置方案 端侧大模型实践 - 端侧大模型极简版Demo版落地概述 Agent 会重构数字服务入口与分发逻辑,但不会彻底消灭 APP 解构 AICoding 底层逻辑:人的能力定义 AI 边界 告别AI概念混乱!一次性讲透 Agent Skills、Rules、Prompt、MCP AI编程的实践场景与未来可能:一场开发范式的演进 移动端 SDK 开发经验总结及梳理 Android SDK 组件化 AAR 打包集成 【工信部】App违法违规收集使用个人信息行为认定方法 Git 远程删除分支后,本地 git branch -a 依然能看到的解决办法 Java 安全密码学 Android使用ContentProvider初始化SDK库方案总结
Android WebView不显示Mixed Content的问题解决方案
灰色飘零 · 2021-09-01 · via 博客园 - 灰色飘零

使用WebView加载一些Htpps的网页时,明明调用了WebView.loadUrl(“xxxxxx”),但是发现内容展示不全,或存在问题。并且Logcat中会出现一些报错:

“Mixed Content: The page at ‘https://www.baidu.com/’ was loaded over HTTPS, but requested 
an insecure image ‘http://d.hiphotos.baidu.com/forum/pic/item/9.jpg’. This request has 
been blocked; the content must be served over HTTPS.”, source: https://www.baidu.com/ (0)

这个原因是浏览器不允许在https里面嵌套http请求,只要发现https网站中有http请求,直接忽略。

解决方案

因为在Android 5.0以后,WebView默认使用的是MIXED_CONTENT_NEVER_ALLOW,也就是不允许从http加载资源,只要改为MIXED_CONTENT_ALWAYS_ALLOW就能正常加载http资源了。解决这个问题只需对WebView增加以下设置:

webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);

还需要在AndroidManifest.xml中加上以下属性。因为8.0以上默认禁用了http.

<application android:usesCleartextTraffic="true">

注意:在安全要求等级高的的App或者组件内,不要轻易加此配置,而是应该驱动提供Web页面的人将所有的内容都替换为Https的内容。