iOS上的“ onDeviceMotion”事件是否有任何限制?

时间:2019-05-02 20:45:52

标签: javascript ios node.js iphone events

在访问iOS上的onDeviceMotion事件时遇到问题。它适用于Android。

我正在遵循一个教程,并且代码在我的iOS设备上运行正常,但是当我复制/粘贴完全相同的代码并从我的ios设备上的本地主机运行它时,不会触发onDeviceMotion事件。 相同的代码在我的Chrome和Firefox上的Android设备上运行得很好。因此,我认为这不是Apple的限制,而不是代码问题。

我在iOS 12上,并且在Safari上启用了运动传感器。

对于iOS上的运动事件,我应该注意哪些限制?例如必要的https或CORS?我的服务器是用Node.JS编写的。

下面是我正在谈论的代码。

sports/tennis/courts/A/foo

谢谢!

1 个答案:

答案 0 :(得分:0)

问题是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);