index.hbs 5.26 KB
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>{{title}}</title>
    <meta name="keywords" content="">
    <meta name="description" content="">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta content="yes" name="apple-mobile-web-app-capable">
    <meta content="telephone=no" name="format-detection">
    <meta content="email=no" name="format-detection">
    <link rel="dns-prefetch" href="//cdn.yoho.cn">
    {{{resources}}}
    {{{styles}}}
    <script type="text/javascript">
        (function(d,c){var e=d.documentElement,a="orientationchange" in window?"orientationchange":"resize",b=function(){var f=e.clientWidth;if(!f){return}if(f>=750){e.style.fontSize="40px"}else{e.style.fontSize=40*(f/750)+"px"}};if(!d.addEventListener){return}b();c.addEventListener(a,b,false);d.addEventListener("DOMContentLoaded",b,false)})(document,window);
    </script>
</head>
<body>
    {{{html}}}
    <div id="degrade-app"></div>
    <div id="main-wrap">
        <div id="no-download"></div>
    </div>
    {{{states}}}
    {{#if asyncScripts}}
    <script>
        document.addEventListener('DOMContentLoaded', function() {
            setTimeout(function() {
                var s = document.getElementsByTagName("script")[0];
                {{# asyncScripts}}
                var hm{{index}} = document.createElement("script");
                hm{{index}}.async = true;
                hm{{index}}.src = "{{src}}";
                s.parentNode.insertBefore(hm{{index}}, s);
                {{/ asyncScripts}}
            }, 200)
        })
    </script>
    {{^}}
    {{{scripts}}}
    {{/if}}
    <script>
    setTimeout(function() {
        (function(w, d, s, j, f) {
            var a = d.createElement(s);
            var m = d.getElementsByTagName(s)[0];

            w.YohoAcquisitionObject = f;

            w[f] = function() {
                w[f].p = arguments;
            };

            a.async = 1;
            a.src = j;
            m.parentNode.insertBefore(a, m);
        }(window, document, 'script', (document.location.protocol === 'https:' ? 'https:' : 'http:') + '//cdn.yoho.cn/yas-jssdk/2.4.18/yas.js', '_yas'));

        var _hmt = _hmt || [];

        (function() {
            function getUid() {
                var uid,
                    name = 'app_uid',
                    cookies = (document.cookie && document.cookie.split(';')) || [];

                for (var i = 0; i < cookies.length; i++) {
                    if (cookies[i].indexOf(name) > -1) {
                        uid = decodeURIComponent(cookies[i].replace(name + '=', '').trim());
                        break;
                    }
                }

                if (!uid) return 0;

                uid = uid.split('::');
                if (!uid || uid.length < 4) {
                    return 0;
                }
                return uid[1];
            }

            function queryString() {
                var vars = {},
                    hash,
                    i;
                var hashes = window.location.search.slice(1).split('&');

                for (i = 0; i < hashes.length; i++) {
                    hash = hashes[i].split('=');
                    vars[hash[0]] = hash[1];
                }
                return vars;
            }

            var uid = getUid() || queryString().uid;

            uid = uid === 0 ? '' : uid;
            window._ozuid = uid; // 暴露ozuid
            if (window._yas) {
                window._yas(1 * new Date(), '2.4.16', 'yohoappweb', uid, '', '');
            }

            (function() {
                var hm = document.createElement("script");
                hm.src = "https://hm.baidu.com/hm.js?65dd99e0435a55177ffda862198ce841";
                var s = document.getElementsByTagName("script")[0];
                s.parentNode.insertBefore(hm, s);
            })();
        }());

        function isWeiXinAndIos() {
          // window.navigator.userAgent属性包含了浏览器类型、版本、操作系统类型、浏览器引擎类型等信息,这个属性可以用来判断浏览器类型
          let ua = '' + window.navigator.userAgent.toLowerCase()
          // 通过正则表达式匹配ua中是否含有MicroMessenger字符串且是IOS系统
          let isIos = /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(ua) // 是IOS系统
          return isIos
        }

        (function() {
          let myFunction
          let isWXAndIos = isWeiXinAndIos()
          if (isWXAndIos) { // 既是微信浏览器 又是ios============(因为查到只有在微信环境下,ios手机上才会出现input失去焦点的时候页面被顶起)
            document.body.addEventListener('focusin', () => { // 软键盘弹起事件
              clearTimeout(myFunction);
            });
            document.body.addEventListener('focusout', () => { // 软键盘关闭事件
              clearTimeout(myFunction)
              myFunction = setTimeout(function() {
                window.scrollTo({top: 0, left: 0, behavior: 'smooth'})// 重点  =======当键盘收起的时候让页面回到原始位置
              }, 200);
            });
          }
        })();
    }, 500);

    </script>
</body>
</html>