谷歌地理编码 api 在 Apache Cordova 中的 Ripple 系统中工作时无法在 Android 手机中工作
Posted
技术标签:
【中文标题】谷歌地理编码 api 在 Apache Cordova 中的 Ripple 系统中工作时无法在 Android 手机中工作【英文标题】:Google geocoding api not working in android phones while it is working in system with Ripple in Apache Cordova 【发布时间】:2016-03-05 06:31:32 【问题描述】:我开发了一个基于邮政编码的天气查找器测试应用。 不幸的是,在使用 google geocoding api 时,我无法在 android 手机上获得 json 结果集。当使用 Ripple 移动模拟器进行测试时,它在我的系统上运行良好。我使用以下 api 来根据位置的邮政编码/密码找出纬度和经度。
Link
请给我推荐一个合适的api,我可以通过它从某个区域的pin码中获取Json格式的经纬度。
这是我编写的代码,用于根据邮政编码/密码呈现天气。
function getWeather()
var zipcode = $('#input-box').val();
var qs = "http://maps.googleapis.com/maps/api/geocode/json?address=" + zipcode + "&sensor=true";
var lat = '';
var lng = '';
$.getJSON(qs, function (results)
lat = results.results[0].geometry.location.lat;
lng = results.results[0].geometry.location.lng;
var queryString = "http://api.openweathermap.org/data/2.5/weather?lat=" + lat + "&lon=" + lng + "&appid=2de143494c0b295cca9337e1e96b00e0";
$.getJSON(queryString, function (res, status)
$('#temp').text(res.main.temp - 273.15);
$('#description').text(res.weather[0].description + " in " + res.name);
);
);
仅供参考,我在上述脚本中进行了两个 api 调用(谷歌地理编码 api 和开放天气 api),并且控制甚至没有进入 getJSON。
这是查看源代码时的控制台列表。
enter image description here
【问题讨论】:
这就是我构建查询字符串以从邮政编码中获取纬度和经度的方式。 maps.googleapis.com/maps/api/geocode/… 【参考方案1】:请查看cordova-plugin-whitelist。我认为您必须允许您的应用请求外部 URL。
转到您的项目根文件夹并安装插件:
cordova plugins install cordova-plugin-whitelist
然后把这个放到你config.xml
的android平台标签之间:
<platform name="android">
<!-- Don't block any requests -->
<access origin="*" />
<!-- other stuff -->
</platform>
别忘了重建你的目标:
cordova build android
【讨论】:
你好节拍。感谢您的答复。不幸的是,它仍然无法正常工作。正如您所说,我已经进行了必要的更改并重建了应用程序。它在我的系统上运行,而不是在我的安卓手机上运行。 是的。错误很少。加载资源失败:服务器响应状态为 404(未找到)(匿名函数)@ripple.js:50ipple.js:37 cordova :: Initialization Finished (Make it so.) 嗨,Beat,我在问题中添加了屏幕截图。 但是你的问题出在设备上,那些错误呢? 我在波纹模拟器中看到了这些错误。实际设备上没有错误。控件甚至没有进入我试图更改标题文本以检查结果的 $getJSON(...) 函数。以上是关于谷歌地理编码 api 在 Apache Cordova 中的 Ripple 系统中工作时无法在 Android 手机中工作的主要内容,如果未能解决你的问题,请参考以下文章