离子地理定位,iOS 上没有权限

Posted

技术标签:

【中文标题】离子地理定位,iOS 上没有权限【英文标题】:Ionic Geolocation, No Permission on iOS 【发布时间】:2018-01-30 04:06:00 【问题描述】:

在过去的 3 个小时里,我一直在尝试让地理定位包工作,并决定寻求一些帮助,也许你能看到一些我看不到的东西。

我已按照说明进行操作,但无法让该应用在任何 ios 设备上获得位置服务权限。

config.xml

https://gist.github.com/keoir/90ea3b75fefed70495409fd5692ac5c0

Package.json

https://gist.github.com/keoir/285c4c04671f70c2473783052936af0d

app.component.ts

https://gist.github.com/keoir/2d09d7cc6956b507a47a59701f0e1aa2

【问题讨论】:

您能指定您使用的 iOS 版本和设备/模拟器吗? 对我来说问题是我没有添加cordova插件,因为我使用的是电容器。但显然你仍然需要手动添加它。 【参考方案1】:

@dhanesekar 的解决方案在我每次运行 ionic cordova build ios 时都会被删除。 为了解决这个问题,我在 config.xml 中添加了以下内容:

<edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
   <string>Get Position</string>
</edit-config>
<edit-config file="*-Info.plist" mode="merge" target="NSLocationAlwaysUsageDescription">
   <string>Get position</string>
</edit-config>

之后:ionic cordova platform remove ios &amp;&amp; ionic cordova platform add ios

【讨论】:

【参考方案2】:

将 NSLocationWhenInUseUsageDescription 添加到 .plist。 打开 /platforms/ios/project/project-Info.plist 并添加以下内容:

<key>NSLocationWhenInUseUsageDescription</key>
<string>[App Name] would like to access your location when running and displayed.</string>

【讨论】:

除非您使用 Swift 或 Objective C(而不是混合框架)进行编程,否则不要这样做。每次重建时它都会被删除。【参考方案3】:

我也遇到了同样的问题,我关注this git doc,终于成功了。

【讨论】:

以上是关于离子地理定位,iOS 上没有权限的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 https 源没有使用导航器地理定位服务的权限?

React Native:如何检查是不是已授予地理定位权限

ios app实现定位功能 权限提示框应该在啥弹出

有没有办法重新询问用户获取他的位置的权限,或者使用带有 javascript 的地理定位 API 删除旧设置?

如何在 iOS 中删除 Phonegap 构建权限警报?

iOS定位的使用:地理/逆地理编码/判断目标经纬度是否在大陆