苹果IOS13.3高版本需要 动作与方向授权以后才能进行摇一摇,授权过程必须有点击才能授权。在进入需要摇一摇的页面的时候可以进行授权,在进行提示点击我用的是手机端swal插件进行提示点击授权。
拒绝授权的可清除微信缓存可再次触发授权。
function permission(){
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') {
console.log('已授权')
}
})
.catch((err)=>{
swal({
title: "温馨提示",
text: "由于IOS系统需要手动获取访问动作与方向的权限,请在访问提示中点击允许!",
type: "warning",
showCancelButton: false,
confirmButtonColor: "#DD6B55",
confirmButtonText: "确定",
closeOnConfirm: true },
function(){
ios13granted();
}
);
});
}else{ //13.3以前的版本
console.log('不用授权')
}
}else{
console.log('安卓不用授权')
}
}
function ios13granted() {
if (typeof DeviceMotionEvent.requestPermission === 'function') {
DeviceMotionEvent.requestPermission().then((permissionState) => {
if (permissionState === 'granted') {
alert('授权成功')
}
}).catch((error) => {
console.log('拒绝授权')
})
} else {
// 处理常规的非iOS 13+设备
console.log("处理常规的非iOS 13+设备")
}
}
permission()