[使用iOS12.2 +,Apple希望用户使用手势来激活设备动作或设备方向。我在互联网上找到了样本,例如here。我显示一个弹出窗口,在该窗口中将通知用户,并且可以接受或拒绝访问。使用Javascript都可以正常工作。
[我知道Safari正在缓存permitState(被授予或拒绝),因此在(由用户)授予或拒绝许可之后,可以重新加载页面,并且仍然可以知道permissionState。问题来了:(如何)我可以检查权限是否已被授予或拒绝?如果已经设置,我不想在页面重新加载后再次显示弹出窗口(征求许可)。
好吧,我想我找到了一个解决方案,虽然不漂亮,但是可以用。
[首先,我有一个功能可以检查iOS 13+在这种情况下,我然后请求权限,如果用户已授予访问权限,则DeviceMotionEvent.requestPermission返回granted(如果他们尚未授予访问权限),它将失败,然后触发模式。然后再次请求权限。
DeviceMotionEvent.requestPermission()
.then(response => {
if (response) {
console.log(response)
}
})
.catch(function(error) {
console.log("error");
// Trigger modal to ask for permissions
$('#askForPermission').modal('toggle')
});
希望有帮助