ios ionic app中的Mapbox位置请求提示

Posted

技术标签:

【中文标题】ios ionic app中的Mapbox位置请求提示【英文标题】:Mapbox location request prompt in ios ionic app 【发布时间】:2021-11-28 14:15:10 【问题描述】:

我有一个 React 应用程序,我正在使用 Ionic 和 capcitorjs 将它变成一个电话应用程序。 mapbox 地图是应用程序的重要组成部分,当您打开应用程序时,它会通过非常正常的提示请求访问手机位置的权限。这很好,当应用程序打开时,地图正确地以用户为中心(使用@capacitor/geolocation)。但是当用户按下以用户为中心的mapboxgl.GeolocateControl按钮并添加蓝色位置点时,提示很奇怪,我看不到在哪里更改它。使用用户位置的提示(尽管已经有权限)是:

“://”想使用您当前的位置

不允许 |好的

在哪里可以更改此提示?它不会出现在 android 上,所以这只是一个 ios 问题。对于请求地理定位访问的第一个提示,可以在 XCode 的 Info.plist 文件中进行编辑,但是这个“Would Like...”提示甚至不会出现在 Info.plist 中。好像是mapbox引起的。可以用@capacitor/geolocation 更改提示吗?

以下是此 npm 应用的相关依赖项:

"ionic": "^5.4.16",
"mapbox-gl": "^2.5.1",
"@capacitor/core": "^3.2.4",
"@capacitor/geolocation": "^1.1.0",
"@mapbox/mapbox-sdk": "^0.13.2",
"react": "^17.0.2",
"@capacitor/android": "^3.2.4",
"@capacitor/app": "^1.0.3",
"@capacitor/cli": "^3.2.4",
"@capacitor/ios": "^3.2.4",

【问题讨论】:

有这个类似的问题,不过是用cordova,有点老了,不好理解:***.com/questions/32024240/… 嘿,看看我的答案,确认我对你有用吗?如果问题相同,您可以将我的答案标记为正确,谢谢 【参考方案1】:

ios 有两种地理位置权限

    一次使用位置权限(下次会再次请求权限) app 使用时(需要app运行时) 第三个权限始终是 ios 12 中不允许的

解决方案:

在 xcode info.plist 中添加这两个属性

NSLocationAlwaysUsageDescription

NSLocationWhenInUseUsageDescription 

还有一些文本字符串值

【讨论】:

这些已经在我的 imo.plist 文件中,但它们不控制我得到的第二个权限请求。

以上是关于ios ionic app中的Mapbox位置请求提示的主要内容,如果未能解决你的问题,请参考以下文章

Mapbox 地图未在 ionic 生产版本中显示

react-mapbox-gl _onClickGeolocate() 调用与 setTimeout 自动请求位置

iOS高德地图WMS服务&Mapbox地图WMS服务

POST 请求在 IONIC 应用程序中的 iOS 设备上不起作用

离开 UIControllerView 时 MapBox 停止位置

Mapbox GL JS 轴承