Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova:Android在通过HTTPS请求数据时出现CSP问题_Android_Cordova_Cordova Plugins_Cordova 3_Osrm - Fatal编程技术网

Cordova:Android在通过HTTPS请求数据时出现CSP问题

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下载应用程序时,它

CordovaAndroid是一个Android应用程序库,允许 将为Android平台构建基于Cordova的项目。科尔多瓦 基于web的应用程序的核心是使用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>
由于这在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';">