苹果网络应用程序状态栏检测纵向或横向不工作

apple web app status bar detect portrait or landscape not working

我正在使用此条件来检测 ios 设备的纵向或横向。但它不起作用。可能是什么问题?

if (navigator.standalone) {
    var windowHeight = $(window).height();
    var windowWidth = $(window).width();

        if(windowWidth>windowHeight) {
            $('body').css('border','0');
        }else{
            $('body').css('border-top','20px solid #c23c2f');
        }
}

(windowWidth>windowHeight) 似乎不起作用,因为它只在页面的第一次加载时起作用,如果用户默认使用横向,那么当倾斜到纵向时,不满足条件。

这段代码什么时候执行?

您应该监听 orientationchange 事件,然后执行您的代码

参考:https://developer.apple.com/library/ios/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html

引用添加事件监听器是这样的:

<body onorientationchange="updateOrientation();">

但是你也可以用jquery添加它,如果你不想做数学,你可以用window.orientation确定屏幕的方向,或者它不可靠