【问题标题】:geocoder.geocode callback is never called in ionic cordovageocoder.geocode 回调永远不会在 ionic cordova 中调用
【发布时间】: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 或演示完整代码的地方添加指向某些代码的链接,至少足以显示问题可能出在哪里?
  • 您是否收到任何错误消息?
  • 另外,你看过这个插件了吗? github.com/wf9a5m75/phonegap-googlemaps-plugin/wiki/Geocoder
  • not_a_bot,我试图捕获错误消息,但是没有,我没有收到任何错误(据我所知)。我的示例缺少配置:
  • 我没有,not_a_bot;目标是在没有插件的情况下做到这一点;尽管如此,还是有关于这个主题的新信息:如果我尝试从网络浏览器调用运行 ionic 的地理编码,我会得到正确的结果;从模拟器或设备运行它,我没有,回调永远不会被调用。

标签: google-maps cordova google-maps-api-3 ionic geocode


【解决方案1】:

这个问题在某种程度上与离子有关。在使用cordova运行和模拟之后,事情开始起作用了。我使用 ionic-starter-maps 模板对此进行了测试。要自己做,试试这个:

ionic start MyMaps maps
ionic platform add android
ionic emulate android  # won't work

ionic start MyMaps maps
cordova platform add android
cordova emulate android  # works!

另外,请确保 content-security-policy 具有所需的规则:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2013-11-23
    • 2017-12-06
    • 2017-07-26
    相关资源
    最近更新 更多