检测 React Web App Safari 中的方向变化

Detect Orientation Change in React Web App Safari

我正在为 Android 和 iPhone 编写 React Web 应用程序。我正在尝试获取有关设备方向变化的更新。在 Chrome/Firefox 或大多数其他浏览器中我可以做到:

window.addEventListener('orientationchange', this.orientationChange);

orientationChange()
{
    console.log('info-view: orientation change detected ' + window.screen.orientation.type);

    try {
        screenOrientation = window.screen.orientation.type;
    } catch (error) {}
}

但这在 Safari 中不起作用,因为它 orientationchange 根本不受支持。即使在方向更改时执行回调 window.screen.orientation 也是 undefined.

据我所知,没有办法在 Safari 中获得方向更改的回调。我已经解决这个问题超过 2 周了,我真的需要任何一种可能有效的 workaround/solution。

尽管通常的 window.screen.orientation 在 safari 中是 undefined window.orientation - (deprecated) 却以 0、90、-90 和 180 度表示方向。

我知道这不是一个完美的答案,因为此功能已被弃用,但它是(唯一)适用于 Safari 的功能,如果有人知道在 Safari 移动网络中检测方向的更好方法,请分享。