繁体   English   中英

iOS上的离子地理定位权限问题

[英]Ionic Geolocation Permission issue on iOS

我在ionic3上的地理位置插件有问题。

我添加了所有导入内容。 <edit-config>部分也是如此。 我可以在我的plist文件中看到:

<key>NSLocationWhenInUseUsageDescription</key>
<string>Get Position</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Get position</string>

所以我认为这可行。 但事实并非如此; 它适用于Android,但不适用于iOS。 我称这种方法:

this.geolocation.getCurrentPosition().then((resp) => {
    alert("geo " + resp.coords.latitude);
    // resp.coords.latitude
    // resp.coords.longitude
   }).catch((error) => {
     alert(error.code);
     alert(error.message);
   });

我收到了Error.code 2和Error.message:“来源无权使用地理位置服务”。

我该怎么办?

我遇到了这个确切的问题-我不得不在XCode本身的* .plist文件中手动添加此隐私设置(位于resources /中)。

在“ Key ,键入“ Privacy - Location When In Use Usage Description ,或至少开始键入它,它将自动完成。 Type应该是StringValue应该是您要弹出给用户的消息,解释为什么您需要访问位置数据。

我有同样的问题。 我将Ionic v4与React,Cordova v9,cordova-ios v4.5.5一起使用。 我发生的问题是因为我没有将Cordova JS脚本注入到Web视图中。 为了解决这个问题,我在准备钩子( (cordova root)/hooks/before_prepare/inject_cordova.js )之前,将以下Bash脚本添加到了Cordova的脚本中:

#!/bin/bash
set -e
sed -E -i "" -e "s_(<head[^>]*>)_\1<script src=\"cordova.js\"></script>_" www/index.html

其中www/index.html是您的应用程序主HTML文件相对于cordova项目根目录的路径。

当您运行cordova prepare ios时,最后一行将<script src="cordova.js"></script>标记添加到HTML文件的末尾。 结果,Web视图开始加载包括地理位置插件的Cordova脚本,并且应用程序开始询问使用地理位置的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM