IOS上的位置不适用于离子2中的地理位置

时间:2018-03-15 16:39:16

标签: javascript html ios angular ionic2

我正在尝试在构建离子的构建时执行此操作,但该位置在IOS上,并且不适用于离子2应用程序中的地理位置。

我已安装离子cordova插件添加cordova-plugin-geolocation和

在Android设备中,当启用位置服务时,它正在工作。当位置服务无法正常工作时。在iOS设备中,两种情况都不起作用。需要一些帮助!!

import { Geolocation } from '@ionic-native/geolocation';

在提供商中,我提到了地理定位;在home.ts我导入了Geolocation。

要获取当前位置,我已编写以下代码

getCurrentLocation(){    
    this.geolocation.getCurrentPosition().then((position) => {
        let loc = {
          placeId: null,
          name:null,
          lat:null,
          long:null,
        }

        var lat = position.coords.latitude;
        var lng = position.coords.longitude;
        var latlng = new google.maps.LatLng(lat, lng);
        var geocoder = geocoder = new google.maps.Geocoder();
}

2 个答案:

答案 0 :(得分:3)

如果IOS上的位置不适用于地理位置

从iOS 10开始,必须在info.plist中添加NSLocationWhenInUseUsageDescription条目。

NSLocationWhenInUseUsageDescription描述了应用访问用户位置的原因。

当系统提示用户允许访问时,此字符串将显示为对话框的一部分。

要添加此条目,您可以在插件安装上传递变量GEOLOCATION_USAGE_DESCRIPTION。

示例:cordova插件添加cordova-plugin-geolocation - 变量GEOLOCATION_USAGE_DESCRIPTION ="您的使用信息"

如果您没有传递变量,插件会添加一个空字符串作为值。

要解决您的问题,请尝试: 卸载插件: cordova插件删除cordova-plugin-geolocation 重新安装:

cordova插件添加cordova-plugin-geolocation - 变量GEOLOCATION_USAGE_DESCRIPTION =" my_project想要使用您的位置"

平台/ IOS / {项目} / {项目} /project.info.plist

这将自动在info.plist文件中添加条目

答案 1 :(得分:1)

您还可以手动编辑platform / ios / {project} / {project} /project.info.plist文件并添加以下行

 <key>NSLocationWhenInUseUsageDescription</key>
 <string>Location is needed because [your reason]</string>