Cordova Android 是一个 Android 应用程序库,允许为 Android 平台构建基于 Cordova 的项目。基于 Cordova 的应用程序的核心是使用 Web 技术编写的应用程序:HTML、CSS 和 JavaScript。Apache Cordova 是 Apache 软件基金会 (ASF) 的一个项目。
我使用 Cordova 开发了一个应用程序,它可以在 iOS 和 Android 上按预期工作,当签名的应用程序从 Android Studio 直接部署到三星 S6 时。
但是,当从 Google Play 下载应用程序时,它不会从 HTTPS 请求中获取请求的数据。
以下是 config.xml 中的白名单设置:
<plugin name="cordova-plugin-whitelist" version="1" />
<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
以及 index.html 中的 CSP 设置
<meta http-equiv="Content-Security-Policy" content="default-src 'self' gap: https://ssl.gstatic.com; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src *; connect-src *">
这是未获取数据的请求(没有任何有意义的错误消息 - e.type 只是一个空字符串)
_routingControl = L.Routing.control({
plan: L.Routing.plan([
L.latLng(coords),
L.latLng(_userMarker.getLatLng())
],{
createMarker: function() {return false}
}),
fitSelectedRoutes: true,
autoRoute: true,
show: false,
serviceUrl: 'https://router.project-osrm.org/viaroute'
});
由于这适用于 iOS,我认为白名单/CSP 设置存在问题。
有人可以解释为什么从应用商店下载应用时这不起作用吗?