我在访问onDeviceMotion事件时遇到了问题。它能在Android上工作。
我正在学习一个教程,代码在我的iOS设备上运行得非常好,但是当我复制/粘贴完全相同的代码并在我的iOS设备上的本地主机上运行它时,onDeviceMotion事件不会被触发。--同样的代码在我的安卓设备上运行得很好,在Chrome和Firefox.上,所以我认为这不是一个代码问题,而是苹果的限制。
我在iOS 12上,并启用了Safari上的运动传感器。
对于iOS上的运动事件,我应该知道有什么限制吗?比如必要的https或CORS?我的服务器是用Node.JS编写的。
下面是我说的代码。
window.addEventListener('devicemotion', onDeviceMotion, true);
function onDeviceMotion(event) {
let x = event.accelerationIncludingGravity.x;
let y = event.accelerationIncludingGravity.y;
let z = event.accelerationIncludingGravity.z;
}谢谢!
发布于 2019-05-03 17:35:08
问题是Safari将限制某些事件,特别是运动事件,使其无法在不安全的HTTP网站上运行。您必须设置并启用HTTPS,然后将触发事件。
Node.JS
const privateKey = fs.readFileSync( 'keys/server.key' );
const certificate = fs.readFileSync( 'keys/server.crt' );
https.createServer({
key: privateKey,
cert: certificate
}, app).listen(8080);https://stackoverflow.com/questions/55960002
复制相似问题