gpt4 book ai didi

javascript - navigator.geolocation.getCurrentPosition 在 iOS 上失败

转载 作者:行者123 更新时间:2023-12-05 07:29:49 49 4
gpt4 key购买 nike

这适用于 SafariMac OS X , 和 Chrome在两个Mac OS XAndroid .但它在 Safari 上失败了在 iOS (在 iPhone 8iPad 上测试)。

if (navigator.geolocation) {
alert('geolocation OK');
navigator.geolocation.getCurrentPosition(function(position) {
alert('getCurrentPosition OK');
BaseLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
initMap();
});
}

我收到警报 geolocation OK , 但第二个 getCurrentPosition OK未显示在 iOS 上和 initMap永远不会被调用。

如何调试,我没有 USB 线连接我的 iPhoneiPad .

最佳答案

我知道这是一篇旧帖子,但我们在处理 navigator.geolocation.getCurrentPosition() 时遇到了一些重大问题在standalone iOS Safari 中的模式。

我发布了一个更全面的答案 here但我们最终代码的一般要点是:

export function getUserPosition(): Promise<GeolocationPosition> {
const promiseArray = [];

if (navigator.standalone) {
promiseArray.push(
new Promise((resolve, reject) => {
const wait = setTimeout(() => {
clearTimeout(wait);
reject('Location has timed out');
}, 4000);
})
);
}

const getCurrentPositionPromise = new Promise((resolve, reject) => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(resolve, reject, {
timeout: 5000,
maximumAge: 2000,
enableHighAccuracy: true,
});
} else {
reject(new Error('Browser does not support geolocation!'));
}
});

promiseArray.push(getCurrentPositionPromise);

return Promise.race(promiseArray) as Promise<GeolocationPosition>;
}

关于javascript - navigator.geolocation.getCurrentPosition 在 iOS 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52581838/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com