Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS.12.2+;通过Javascript?_Javascript_Ios_User Permissions - Fatal编程技术网

如何在iOS.12.2+;通过Javascript?

如何在iOS.12.2+;通过Javascript?,javascript,ios,user-permissions,Javascript,Ios,User Permissions,在iOS12.2+上,苹果希望用户用手势激活devicemotion或deviceorientation。我在网上找到了样品,f.e。我显示一个弹出窗口,用户将在其中得到通知,并可以接受或拒绝访问。这一切都可以很好地使用Javascript 我知道Safari正在缓存permissionState(已授予或已拒绝),因此在(用户)授予或拒绝权限后,可以重新加载页面,并且permissionState仍然是已知的。问题来了:(如何)检查许可是否已经被授予或拒绝?如果已经设置了,我不想在重新加载页面

在iOS12.2+上,苹果希望用户用手势激活devicemotion或deviceorientation。我在网上找到了样品,f.e。我显示一个弹出窗口,用户将在其中得到通知,并可以接受或拒绝访问。这一切都可以很好地使用Javascript


我知道Safari正在缓存permissionState(已授予或已拒绝),因此在(用户)授予或拒绝权限后,可以重新加载页面,并且permissionState仍然是已知的。问题来了:(如何)检查许可是否已经被授予或拒绝?如果已经设置了,我不想在重新加载页面后再次显示弹出窗口(请求许可)

好吧,我想我找到了一个解决方案,虽然不漂亮,但很有效

首先,我有一个函数检查iOS 13+ 如果是这种情况,那么我请求权限,如果用户已经授予访问权限DeviceMotionEvent。requestPermission返回已授予的权限,如果他们没有授予访问权限,则失败,然后我触发模式。然后再次请求权限

DeviceMotionEvent.requestPermission()
.then(response => {
    if (response) {
        console.log(response)
    }
})
.catch(function(error) {
    console.log("error");
    // Trigger modal to ask for permissions
    $('#askForPermission').modal('toggle')
});
希望能有帮助