Cordova:Android在通过HTTPS请求数据时出现CSP问题
CordovaAndroid是一个Android应用程序库,允许 将为Android平台构建基于Cordova的项目。科尔多瓦 基于web的应用程序的核心是使用web编写的应用程序 技术:HTML、CSS和JavaScript。Apache Cordova是一个 Apache软件基金会(ASF). 我用Cordova开发了一个应用程序,它在iOS和Android上都能正常工作,当签名的应用程序从Android Studio直接部署到三星S6上时 但是,当从Google Play下载应用程序时,它不会从HTTPS请求中获取请求的数据 以下是config.xml中的白名单设置:Cordova:Android在通过HTTPS请求数据时出现CSP问题,android,cordova,cordova-plugins,cordova-3,osrm,Android,Cordova,Cordova Plugins,Cordova 3,Osrm,CordovaAndroid是一个Android应用程序库,允许 将为Android平台构建基于Cordova的项目。科尔多瓦 基于web的应用程序的核心是使用web编写的应用程序 技术:HTML、CSS和JavaScript。Apache Cordova是一个 Apache软件基金会(ASF). 我用Cordova开发了一个应用程序,它在iOS和Android上都能正常工作,当签名的应用程序从Android Studio直接部署到三星S6上时 但是,当从Google Play下载应用程序时,它
<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>
由于这在iOS上有效,我认为白名单/CSP设置存在问题
有人能解释一下为什么从应用商店下载应用程序时,这个功能不起作用吗?@barbu,
你马上就修好了
让我困惑的一件事是,开发人员正在从“开发IDE”转向Google Play。作为使用Phonegap构建的人,我的工作流程不包括电缆和“adb”。也许你可以用这个过程来解释推理
在您的问题上,您需要实现白名单系统。
此工作表应有帮助。还有一个文档是从那里链接到的。简言之,通常应用的方式是将CSP从webbrowser扩展,然后将该元元素添加到应用程序中。然而,在您的情况下,您可能会反向工作 修复 通常,当我给出答案时,我会给出白名单和CSP。您可以从CSP开始。祝你好运 将其添加到您的
config.xml
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
侧注:间隙:
根据我现在掌握的,仅Cordova iOS需要,请参阅:@barbu,
你马上就修好了
让我困惑的一件事是,开发人员正在从“开发IDE”转向Google Play。作为使用Phonegap构建的人,我的工作流程不包括电缆和“adb”。也许你可以用这个过程来解释推理
在您的问题上,您需要实现白名单系统。
此工作表应有帮助。还有一个文档是从那里链接到的。简言之,通常应用的方式是将CSP从webbrowser扩展,然后将该元元素添加到应用程序中。然而,在您的情况下,您可能会反向工作 修复 通常,当我给出答案时,我会给出白名单和CSP。您可以从CSP开始。祝你好运 将其添加到您的
config.xml
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
侧注:
间隙:
根据我现在掌握的,仅Cordova iOS需要,请参阅:您应该能够使用Chrome远程调试器的JavaScript控制台获得更详细的错误消息,CSP错误往往非常详细,因此我建议您在打开远程调试器的情况下运行应用程序,并查看JS控制台中发生的情况。这可能会揭示问题所在,以便我们提出解决方案@我确实使用Chrome远程调试器。正如我所说的,当从Android Studio通过USB部署到设备上时,签名的应用程序可以工作,但从应用商店下载时不能工作。您想要修复或解释吗?当从Android Studio部署的应用程序可以工作,但从play store下载时不能工作,通常是服务器证书问题,当应用程序在播放商店上时,可调试标志设置为false,并且不允许其认为不安全的证书(证书本身或您用来签署它的根证书)。@JesseMonroy650如果您有修复程序,请告诉我。您应该能够使用Chrome远程调试器的JavaScript控制台获得更详细的错误消息,CSP错误往往非常详细,因此我建议您在打开远程调试器的情况下运行应用程序,并查看JS控制台中发生的情况。这可能会揭示问题所在,以便我们提出解决方案@我确实使用Chrome远程调试器。正如我所说的,当从Android Studio通过USB部署到设备上时,签名的应用程序可以工作,但从应用商店下载时不能工作。您想要修复或解释吗?当从Android Studio部署的应用程序可以工作,但从play store下载时不能工作,通常是服务器证书问题,当应用程序在播放商店上时,可调试标志设置为false,并且不允许其认为不安全的证书(证书本身或您用来签署它的根证书)@ JaseMeNoRy650,如果您有修复,请让我知道。
<allow-navigation href="*" />
<allow-intent href="*" />
<access origin="*" /> <!-- Required for iOS9 -->
<meta http-equiv="Content-Security-Policy"
content="default-src *;
style-src * 'self' 'unsafe-inline' 'unsafe-eval';
script-src * 'self' 'unsafe-inline' 'unsafe-eval';">