スマートフォンの画面で表示されている高さを取得する

UserAgentを取得して高さをUserAgent毎にごちゃごちゃやると上手くいく。

    // スマホ種別判定
    var ua = navigator.userAgent;
    if(ua.indexOf('Android') > 0) {
        var nPageH = document.height > document.width ? document.height : document.width;
        var nViewH = window.outerHeight > window.outerWidth ? window.outerHeight : window.outerWidth;
        if (nViewH > nPageH) {      
            nViewH = nViewH / window.devicePixelRatio;
            $('body').css('height', nViewH + 'px');
        }
    } else if(ua.indexOf('iPhone') > 0) {
        var nViewH = document.documentElement.clientHeight > document.documentElement.clientWidth ?
                                document.documentElement.clientHeight : document.documentElement.clientWidth;
        if (ua.indexOf('iPhone') && !window.navigator.standalone) nViewH += 60;
        $('body').css('height', nViewH + 'px');
    } else {
        return;
    }

これでやると結果的に高さがnViewHに入る。