点击获取谷歌地图路线时出现ERR_CLEARTEXT_NOT_PERMITTED错误求助
解决Android端WebApp地图路线请求ERR_CLEARTEXT_NOT_PERMITTED错误
问题场景:通过WordPress搭建站点,使用App My Site转为WebApp后,网页端、iOS端地图功能正常,但Android端点击地图获取路线时弹出错误「ERR_CLEARTEXT_NOT_PERMITTED」。已联系谷歌地图API支持及App My Site支持团队未解决。
错误原因
该错误是Android 9(API级别28)及以上系统默认禁止明文HTTP请求导致的,说明地图获取路线时存在HTTP协议的请求,被系统拦截。
可行解决方案
1. 强制WordPress全站HTTPS
确保站点所有资源和请求都使用HTTPS协议:
- 登录WordPress后台,进入「设置-常规」,将「WordPress地址(URL)」和「站点地址(URL)」修改为
https://开头的地址。 - 若后台无法修改,在站点根目录的
wp-config.php文件中添加以下代码:define('FORCE_SSL_ADMIN', true); if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') { $_SERVER['HTTPS'] = 'on'; } - 安装「Really Simple SSL」插件,自动修复混合内容问题,强制全站HTTPS跳转。
2. 配置Android应用网络安全策略
针对App My Site生成的WebApp,调整应用的网络安全设置:
- 登录App My Site后台,找到Android应用的配置选项,查找「允许明文HTTP请求」或「Network Security Config」相关设置,开启对应选项(注意:此操作会降低应用安全性,仅在确认域名安全时使用)。
- 若支持自定义配置,可添加允许特定域名的明文请求(如需兼容老服务),示例配置如下(按平台要求格式输入):
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">你的站点域名</domain> <domain includeSubdomains="true">相关地图服务域名</domain> </domain-config> </network-security-config>
3. 排查地图路线请求的协议
检查站点内地图相关的链接和请求:
- 若使用第三方地图插件,进入插件设置页面,确认所有接口地址都选择HTTPS协议。
- 若为自定义地图代码,搜索代码中是否存在硬编码的
http://链接,全部替换为https://。
内容的提问来源于stack exchange,提问作者Studio Al Mumayaz
相关产品推荐
相关产品推荐

