Cordova Android は、Cordova ベースのプロジェクトを Android プラットフォーム用にビルドできるようにする Android アプリケーション ライブラリです。Cordova ベースのアプリケーションは、基本的に、Web テクノロジー (HTML、CSS、および JavaScript) で作成されたアプリケーションです。Apache Cordova は、Apache Software Foundation (ASF) のプロジェクトです。
iOS で期待どおりに動作する Cordova を使用したアプリを開発しました。また、署名されたアプリが Android Studio から直接 Samsung S6 に展開されたときに Android で動作します。
ただし、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 設定に問題があると思われます。
アプリがアプリストアからダウンロードされたときにこれが機能しない理由を誰かが説明できますか?