Google maps geocoder.geocode回调从未在ionic cordova中调用

Google maps geocoder.geocode回调从未在ionic cordova中调用,google-maps,cordova,google-maps-api-3,ionic,geocode,Google Maps,Cordova,Google Maps Api 3,Ionic,Geocode,我有一个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);

我有一个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>
并复制代码


这个问题不知何故与离子有关。在使用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!
此外,请确保内容安全策略具有所需的规则:

<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   *;">


很难说,您给出的代码看起来有效。可能是实际代码中的其他错误。你能在jsfiddle或其他地方添加一个链接到一些代码来演示完整的代码,至少足以显示问题可能在哪里?你有没有收到任何错误消息?另外,你有没有看过这个插件?不是机器人,我试图捕获错误消息,但没有,我没有得到任何错误(据我所知)。我的示例缺少一个配置:我没有,不是机器人;目标是在没有插件的情况下做到这一点;尽管如此,关于这个主题还是有新的信息:如果我尝试从web浏览器调用运行ionic的地理代码,我会得到正确的结果;从模拟器或设备运行它,我不知道,回调永远不会被调用。
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!
<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   *;">