电容器 - 地理定位不适用于 iOS,但适用于 Android

Posted

技术标签:

【中文标题】电容器 - 地理定位不适用于 iOS,但适用于 Android【英文标题】:Capacitor - Geolocation does not work on iOS but works on Android 【发布时间】:2020-04-17 23:38:15 【问题描述】:

我正在编写一个使用地理定位的应用程序。一切都在网络和 android 上完美运行。 但是,在 ios 上,我无法获取位置(我实施的第二种方法 - 从地图中选择一个位置虽然有效)

我在 Xcode 控制台中收到此错误:

⚡️  To Native ->  Geolocation getCurrentPosition 7620184
ERROR MESSAGE:  "errorMessage":"The operation couldn’t be completed. 
(kCLErrorDomain error 0.)","message":"The operation couldn’t be completed. 
(kCLErrorDomain error 0.)"

这是我获取位置的方法:

 private locateUser() 
        if (!Capacitor.isPluginAvailable('Geolocation')) 
            this.showErrorAlert();
            return;
        
        this.isLoading = true;
        Plugins.Geolocation.getCurrentPosition()
            .then(geoPosition => 

                const coordinates: Coordinates = 
                    lat: geoPosition.coords.latitude,
                    lng: geoPosition.coords.longitude
                ;
                this.createPlace(coordinates.lat, coordinates.lng);
                this.isLoading = false;
            )
            .catch(err => 
                this.isLoading = false;
                this.showErrorAlert();
            );
    

您知道是什么原因造成的吗?

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。在模拟器中单击功能 > 位置 > 自定义位置并在那里设置一个位置为我解决了这个问题。希望这会有所帮助!

【讨论】:

我花了很多时间处理这个问题,你救了我,非常感谢!!!【参考方案2】:

我有同样的问题。 为了其他目的,我在 config.xml 中设置了一个带有主机名和他的 IP 地址的首选项标签。 删除它解决了地理定位错误

【讨论】:

以上是关于电容器 - 地理定位不适用于 iOS,但适用于 Android的主要内容,如果未能解决你的问题,请参考以下文章

定位服务数据不适用于某些手机,但适用于 Pixel 3

Ionic 4 Leaflet Map不适用于部署,但适用于离子服务--devapp

地理定位不适用于带有 Meteor 的 iOS

为啥我的容器注册表适用于 gitlab 自动部署,但不适用于我的自定义管道?

将列表中的所有字符串转换为浮点数。适用于单个列表,但不适用于数据框

CAGradientLayer 不适用于 iOS 7(但适用于 iOS 6)