Javascript 谷歌地理编码api在Android移动应用程序中不起作用,而在ripple系统中起作用

Javascript 谷歌地理编码api在Android移动应用程序中不起作用,而在ripple系统中起作用,javascript,jquery,api,cordova,google-api,Javascript,Jquery,Api,Cordova,Google Api,我对移动应用程序开发领域(ApacheCordova)是新手 在开发天气应用程序时,我遇到了谷歌地理编码api的问题。代码在我的系统上运行良好,但在android设备上不起作用 在用任意位置的pin码检索纬度和经度时,我无法在android手机中获取json结果对象 如果有任何调试过程来找出错误所在,有人能帮我吗 下面是我用来获取位置坐标的查询字符串 提前感谢。对于调试,Chrome远程调试器/检查工具非常优秀,可以让您查看设备上的JS控制台,以及检查Cordova应用程序中的web视图,就像

我对移动应用程序开发领域(ApacheCordova)是新手

在开发天气应用程序时,我遇到了谷歌地理编码api的问题。代码在我的系统上运行良好,但在android设备上不起作用

在用任意位置的pin码检索纬度和经度时,我无法在android手机中获取json结果对象

如果有任何调试过程来找出错误所在,有人能帮我吗

下面是我用来获取位置坐标的查询字符串


提前感谢。

对于调试,Chrome远程调试器/检查工具非常优秀,可以让您查看设备上的JS控制台,以及检查Cordova应用程序中的web视图,就像它是任何其他网页一样

要使用这些,您需要在Android设备上打开开发者/远程USB调试,并通过USB电缆将其连接到计算机。然后Chrome应该能够将其视为远程可检查的web视图

可以查看有关设置Chrome远程调试器的详细信息

您的实际问题可能是内容安全策略/白名单插件。默认情况下,index.html中的内容安全策略元标记(由Cordova CLI在Cordova 5或更高版本中创建)将不允许远程Ajax请求。。。您可以使用connect src子句将其配置为允许连接到要连接到的一组服务器,或者使用*允许任何连接。为了安全起见,最好明确列出要连接的源

为此,请在
元素的index.html中添加类似的内容:

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; connect-src http://maps.googleapis.com">


这将为maps.googleapis.com启用Ajax。有一篇综合性的博客文章讨论了内容安全策略。

下面是我在meta标签中所做的更改,我提到了从中提取数据的来源

以下是在ApacheCordova(index.html)中创建新项目时出现的默认元标记


下面是index.html中修改过的meta标记,我们需要提到从中获取数据的api源

<meta http-equiv="Content-Security-Policy" content="* 'self' data: gap: https://ssl.gstatic.com https://query.yahooapis.com https://maps.googleapis.com https://api.openweathermap.org/ 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">


你好,西蒙。非常感谢。你的观点让我很高兴,我们需要在meta标签中进行更改。我发现了错误。我认为您的
content=“…”
中缺少了“default src”,例如
content=“default src*…”
Hi Simon。我使用了*而不是默认的src,这意味着我们也可以使用内联脚本。
<meta http-equiv="Content-Security-Policy" content="* 'self' data: gap: https://ssl.gstatic.com https://query.yahooapis.com https://maps.googleapis.com https://api.openweathermap.org/ 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">