Ionic/Cordova 项目在 Android 内出现图片或网页不能显示的问题

问题描述

今天在 Android 中跑 Apk 时出现了网络图片不能显示的问题,打开 Chrome 进行浏览器远程调试
经检查 cordova-plugin-whitelist 已正常安装并设置白名单,接口可以访问(接口为 https)但是图片不可以访问,提示 net::ERR_CLEARTEXT_NOT_PERMITTED

问题原因

原因是因为在 Android 6.0 开始默认关闭了 http 请求,需要在 AnroidManifest.xml 中的 application 设置为 true。

设置 Config.xml 解决问题

最后结局方案为设置 Config.xml 添加如下配置

1
2
3
4
5
<platform name="android">
<edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
<application android:usesCleartextTraffic="true" />
</edit-config>
</platform>

如果修改后 build 提示 Android resource compilation failed,则需要修改 widget 的 xmlns:android 值,示例如下:

1
2
3
<widget id="..." version="1.2.6" xmlns:android="http://schemas.android.com/apk/res/android">
...
</widget>