解决ios13+动作与方向的权限的获取问题,从而导致无法实现摇一摇
function iosGrantedTips(){var ua = navigator.userAgent.toLowerCase();if(ua.indexOf("like mac os x") > 0){var reg = /os [\d._]*/gi ;var verinfo = ua.match(reg) ;...
function iosGrantedTips(){
var ua = navigator.userAgent.toLowerCase();
if(ua.indexOf("like mac os x") > 0){
var reg = /os [\d._]*/gi ;
var verinfo = ua.match(reg) ;
var version = (verinfo+"").replace(/[^0-9|_.]/ig,"").replace(/_/ig,".");
var arr=version.split(".");
$(".aa").text(arr[0]+"."+arr[1]+"."+arr[2])
if (arr[0]>12&&arr[1]>2) { //对13.3以后的版本处理,包括13.3,
DeviceMotionEvent.requestPermission()
.then(permissionState => {
if (permissionState === 'granted') { window.addEventListener('devicemotion', () => {})
}
//
})
.catch((err)=>{
//alert("用户未允许权限")
//======这里可以防止重复授权,需要改动,因为获取权限需要点击事件才能触发,所以这里可以改成某个提示框===//
showLayer("由于IOS系统需要手动获取访问动作与方向的权限,为了保证抽奖正常运行,请在访问提示中点击允许!","","确定",function(index){
ios13granted();
layer.close(index);
})
});
}else{ //13.3以前的版本
}
}
}
//类试这样弹窗都可以
//直接获取调用动作与方向的权限
function ios13granted() {
if (typeof DeviceMotionEvent.requestPermission === 'function') {
DeviceMotionEvent.requestPermission().then((permissionState) => {
if (permissionState === 'granted') {
window.addEventListener('devicemotion', () => {});
}
}).catch((error) => {
alert(error)
})
} else {
// 处理常规的非iOS 13+设备
console.log("处理常规的非iOS 13+设备")
}
}
直接调用iosGrantedTips()函数就可以了
更多推荐
所有评论(0)