最新版苹果手机html5摇一摇,iphone微信摇一摇失效问题解决

news/2024/12/22 19:56:08/

从ios12.2(具体版本可能有些许出入)开始,ios限制http地址的陀螺仪事件,必须https才可以,我们的站点必须是https才能正常生效,于是乎一大堆程序员吭哧吭哧的填好了坑。

当然虽然我们每天如履薄冰,战战兢兢,并不能改变线上某功能突然bug的现象。

于是乎突然有一天用户反馈,iphone xr的微信作品摇一摇不生效,在确认https无误后,便开始痛苦的联机调试,发现监听事件devicemotion未生效,从而查阅资料显示最新版系统陀螺仪功能增加了限制,必须用户手动授权才能正常,拉起授权的事件为

DeviceMotionEvent.requestPermission()

.then( response => {

if ( response == "granted" ) {

// 同意

} else {

// 拒绝

}

}).catch(() => {

// 一般为非用户主动授权

})

这里有几点需要注意:

整个app生命周期授权仅会被拉起一次,之后再次调用也不回拉起,会沿用之前的授权结果,可通过关闭微信来重新发起授权。

如果为第一次授权,必须通过用户交互后方可拉起授权。

因此根据上述情况,我们的流程图大概如下:

f6d5cb062aa6c6e076202452349fb626.png

function iosCheck() {

return new Promise((resolve, reject) => {

if (typeof( DeviceMotionEvent ) !== "undefined" && typeof( DeviceMotionEvent.requestPermission ) === "function") {

getPermission().then(() => {

resolve();

}).catch((e) => {

// 用户拒绝

if (e.type === 1) {

// 用户上次状态为拒绝,提示弹窗

} else if (e.type === 2) { // 用户首次进入,获取权限失败,需手动开启,弹窗引导

// bind event

$(modal).on('touchstart', () => {

getPermission().then(() => {

resolve();

}).catch(() => {

// 用户拒绝授权,提示

});

})

}

});

} else {

resolve();

}

})

}

function getPermission() {

return new Promise((resolve, reject) => {

DeviceMotionEvent.requestPermission()

.then( response => {

if ( response == "granted" ) {

resolve();

} else {

reject({type: 1});

}

}).catch(() => {

reject({type: 2});

})

})

}

iosCheck().then(() => {

window.addEventListener('devicemotion', deviceMotionHandler, false);

})

当然如果更谨慎一些的话,我们可以在iosCheck方法中增加当前版本的限制。

b739ec46bb5c46d9c0aa4ce35ba1ea56.png

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[iphone微信摇一摇失效问题解决]http://www.zyiz.net/tech/detail-127210.html


http://www.ppmy.cn/news/679508.html

相关文章

iphone在微信中audio 音频无法自动播放

<audio src"1213132.mp3"controls"controls" preload id"music1" autoplay"autoplay" hidden></audio>js是这样的 function bf(){var audio document.getElementById(music1);if(audio!null){//检测播放是否已暂停.audio…

FS5175AE降压型1-4节锂电池充电芯片

FS5175AE是一款工作于5V到24V的多串锂电池同步开关降压充电管理芯片。内置MOS管集成了低导通阻抗的NMOS&#xff0c;FS5175AE采用1MHz同步开关架构&#xff0c;实现高 效率充电并简化外围器件&#xff0c;降低BOM成本。通过调节检测电阻&#xff0c;可实现**2A充电电流&#xf…

来啦!iphone ios免越狱,个性化修改微信提示音!

其实很多人更在意如何修改微信提示音。本期将大家介绍如何使用filza文件管理器修改修改微信提示音&#xff01; 重要提示&#xff1a; filza是通过修改系统文件达到个性化目的。误操作可能会导致无法开机等异常情况。并且filza在成功获取到系统权限后可能面临着不能还原手机等…

Mobile - iPhone 的相册照片分享没有微信选项?

我了解到您目前无法在 iPhone 上分享单张照片至“微信”App。由于暂时还没有其他社区用户来与您一起讨论或回复您的帖子&#xff0c;在此之前&#xff0c;建议您不妨先尝试一下以下操作步骤&#xff1a; 重新启动您的 iPhone。确保您的 iPhone 已更新至最新系统。确保所有应用…

微信为部分iPhone用户重新支持CallKit

本文转载自IT之家 IT之家 6 月 9 日消息 CallKit 是苹果在 iOS 10 上线的一项功能&#xff0c;它能够让用户在使用第三方应用的语音聊天功能时&#xff0c;直接看到来电画面&#xff0c;并且语音聊天记录会记录到通话记录中。 2018 年&#xff0c;苹果禁止了中国区应用商店的…

MySQL数据库——MHA高可用

MySQL数据库——MHA高可用 一、MHA概述1&#xff0e;什么是 MHA2&#xff0e;MHA 的组成3&#xff0e;MHA 的特点 二、搭建 MySQL MHA1.Master、Slave1、Slave2 节点上安装 mysql5.72&#xff0e;修改 Master、Slave1、Slave2 节点的主机名&#xff0c;添加主从mysql的映射关系…

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 主体架构与接口

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

cmd 设置 路由 route

查询路由 route print删除单条路由 route delete 192.168.4.0 (网络地址)删除全部路由 route delete *添加路由 格式 route add [-p] 目标地址 mask 子网掩码 网关地址 [metric 数字(1~9999)] route -p add 192.168.4.0 mask 255.255.255.0 192.168.1.1-p 可选参数,表示…