【发布时间】:2021-06-10 16:20:17
【问题描述】:
我有这个sn-p:
const getCurrentPosition = () =>
new Promise<GeolocationPosition>((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!'));
}
});
我这样称呼:
try {
const { coords } = await getCurrentPosition();
// do stuff with coords
}
catch (e){
// handle the error
}
在 iOS PWA (navigator.standalone) 中执行此代码时,如果我将 Safari 的位置设置 (Settings > Privacy > Location Services > Safari Websites) 设置为:Ask Next Time,@ 987654329@ promise 挂起并且不会超时、解决或拒绝。它不会像在 iOS Safari 浏览器中那样提示我输入我的位置
如果我将设置更改为Never 或While Using the App,那么它会提示我并且工作正常。
我希望能够处理用户在使用 PWA 时将其设置设置为 Ask Next Time 的情况。
【问题讨论】:
标签: javascript ios typescript progressive-web-apps w3c-geolocation