【发布时间】:2015-06-25 11:49:28
【问题描述】:
我有一个 ionic/cordova android 项目,我尝试在其中获取服务内某些坐标的位置; maps sdk 加载正常,在我的服务中,我有以下内容:
var lat = 30; // example
var lng = 32; // example
var geocoder = new google.maps.Geocoder(); // geocoder is not undefined here
var latlng = new google.maps.LatLng(lat, lng);
geocoder.geocode({'location': latlng}, function(results, status) {
console.log("geocoder.geocode callback"); // never printed ...
});
在 HTML 中,API 是这样加载的:
<script type="text/javascript"
src="https://maps.googleapis.com/maps/api/js?v=3&key=MOBILE_API_KEY"></script>
知道我在这里做错了什么吗?
[编辑]
我尝试从脚本加载 url 中删除 key 参数;那里没有变化;通过浏览器访问应用程序,geocoder.geocode 工作正常;使用 android 模拟器或在 android 设备中运行它,它不起作用。这可能与许可有关吗?
顺便说一下,我的 content-security-policy 目前设置如下:
[EDIT2]
刚刚用离子项目示例制作了一支笔;创建一个项目:
ionic start TheBlank blank
并复制代码。 http://codepen.io/anon/pen/RPxNaL
// add the android platform
ionic platform add android
// run the project on device
ionic run android // geocode callback will not work here
ionic serve // geocode callback will work here
【问题讨论】:
-
很难说,您提供的代码看起来有效。实际代码中可能还有其他问题。您能否在 jsfiddle 或演示完整代码的地方添加指向某些代码的链接,至少足以显示问题可能出在哪里?
-
您是否收到任何错误消息?
-
not_a_bot,我试图捕获错误消息,但是没有,我没有收到任何错误(据我所知)。我的示例缺少配置:
-
我没有,not_a_bot;目标是在没有插件的情况下做到这一点;尽管如此,还是有关于这个主题的新信息:如果我尝试从网络浏览器调用运行 ionic 的地理编码,我会得到正确的结果;从模拟器或设备运行它,我没有,回调永远不会被调用。
标签: google-maps cordova google-maps-api-3 ionic geocode