无法在 iPhone 应用上使用 PhoneGap 和 jQuery 获取 JSON 结果

Posted

技术标签:

【中文标题】无法在 iPhone 应用上使用 PhoneGap 和 jQuery 获取 JSON 结果【英文标题】:Cannot get JSON results using PhoneGap and jQuery on iPhone App 【发布时间】:2012-01-19 15:54:14 【问题描述】:

目前我使用这个代码:

<script type="text/javascript">

   $(document).ready(function() 
    var url =  "http://openexchangerates.org/latest.json";
    $.getJSON(url + "?callback=?", null,function(data) 

       var currencies = [ "USD", "EUR", "JPY", "GBP", "CHF", "AUD", "CAD", "EUR", "SEK", "HKD", "NOK", "NZD", "MXN", "SGD", "KRW", "RON", "BGN", "RUB", "PLN", "DKK" ];
       var myElementToAppendTo = $("#content");

       $.each(data.rates, function(key, value) 
         value2 = 1 / value;
         valueForEuro = value;  
         value = accounting.formatMoney(value, "", 4, ",", "."); 
         value2 = accounting.formatMoney(value2, "$", 4, ",", ".");

         euro = data.rates.EUR;
         value3 = valueForEuro / euro;
         value4 = 1 / value3;
         value3 = accounting.formatMoney(value3, "", 4, ",", "."); 
         value4 = accounting.formatMoney(value4, "&euro;", 4, ",", ".");

            if(jQuery.inArray(key,currencies) > -1) 
                myElementToAppendTo.append('<div class="currencyBox"><div class="currency">'+key+'</div><div class="tab1"><div class="half">'+value+'</div><div class="half">'+value3+'</div></div><div class="tab2"><div class="half">1 '+key+' = '+value2+' </div><div class="half">1 '+key+' = '+value4+' </div></div></div>');
            
       );

    );
    );


</script>

它适用于任何本地/服务器浏览器,但是当我构建 iPhone 应用程序时,JSON 结果不显示。任何想法为什么?

【问题讨论】:

您是否在您的 plist 中将 openexchangerates.org 列入白名单? 如下所述,phonegap.plist 【参考方案1】:

您需要将要连接的服务器列入白名单(这也可以是通配符)。 这是在您的 PhoneGap.plist 文件中完成的。 来自 Phonegap 文档:

此外,最新代码具有新的白名单功能。如果你是 引用外部主机,您必须将主机添加到 “ExternalHosts”键下的PhoneGap.plist。通配符没问题。因此,如果 您正在连接到“http://phonegap.com”,您必须添加 “phonegap.com”添加到列表中(或使用通配符“*.phonegap.com” 也将匹配子域)。

【讨论】:

【参考方案2】:

不确定这是否会有所帮助,但我最终使用了 google feed 插件,因为当我遇到同样的问题时它会容易得多。必须跳过很多圈才能做到这一点。

链接:http://jquery.malsup.com/gfeed/

否则你需要修改你的plist...

Phonegap 会读取一个名为“ExternalHosts”的设置来检查可以允许的内容。

打开 phonegap.plist - 密钥应该在那里,您应该为您的域添加一个新的。

【讨论】:

由于提要的性质,我需要保留 JSON。

以上是关于无法在 iPhone 应用上使用 PhoneGap 和 jQuery 获取 JSON 结果的主要内容,如果未能解决你的问题,请参考以下文章

phonegap 推送通知在 iPhone 上不起作用

检查 Phonegap 应用程序是不是在 iPad 或 iPhone 上运行

iPhone 上来电后,Phonegap HTML5 音频无法恢复播放

使用phonegap在iphone上录制音频

iTunes 同步应用程序无法使用 Phonegap 安装

如何处理phonegap应用程序中iphone上丢失的硬件后退按钮?