uni-app h5平臺在電腦瀏覽器打開解決方案

使用 uni-app開發 H5平臺 項目在電腦瀏覽器中因瀏覽器分辨率問題會導致 rpx 單位元素尺寸過大,很是影響美觀。

本篇文章小編教大家一下簡單實用的解決方案

#1 創建一個電腦瀏覽器中專用的容器html文件pc.html,參考源碼如下:

<!DOCTYPE html>
<html lang=zh-CN>
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1">
        <title>uni-app h5平臺在電腦瀏覽器打開解決方案</title>
        <meta name="Copyright" content="helang">
        <link rel="shortcut icon" type="image/png" href="/uniapp-extend/static/logo.png">
        <meta name="keywords" content="黃河愛浪,WEB前端河浪,jQuery插件開發者河浪">
        <meta name="description" content="公衆號:web-7258,QQ:1846492969,郵箱:[email protected]">
        <style type="text/css">
            body{
                margin: 0;
                background-color: #f3f3f3;
            }
            iframe{
                width: 375px;
                height: 667px;
                background-color: #fff;
                box-sizing: content-box;
                border: none;
            }
			
            @media screen and (min-width: 450px) {
                iframe {
                    position: fixed;
                    top: 0;
                    right: 0;
                    bottom: 0;
                    left: 0;
                    margin: auto;
                    border: rgba(0,0,0,0.7) solid 10px;
                    border-radius: 4px;
                }
            }
        </style>
        <script type="text/javascript">
            window.isPC = true;

            window.onload = function(){
                /* 監聽電腦瀏覽器窗口尺寸改變 */
                window.onresize = function(){
                    /* 窗口寬度 小於或等於420px 時,跳轉回H5頁面 */
                    if(window.innerWidth <= 420){
                        window.location.pathname = '/uniapp-extend';

                    /* 若你的項目未設置根目錄(默認爲 / 時),則使用下方代碼 */
                    // window.location.pathname = '';
                    }
                }
            }
        </script>
    </head>
    <body>
        <iframe src="/uniapp-extend"></iframe>
        <!--
            若你的項目未設置根目錄(默認爲 / 時),則使用下方代碼
            <iframe src="/"></iframe>
        -->
    </body>
</html>

#2 在uni-app項目的 App.vue 文件中寫下如下代碼:

/* ----- onLaunch 函數中的 JS 代碼 ----- */

/* 條件編譯,僅在H5平臺生效 */
// #ifdef H5
uni.getSystemInfo({
    success(e){
        /* 窗口寬度大於420px且不在PC頁面且不在移動設備時跳轉至 PC.html 頁面 */
        if(e.windowWidth>420 && !window.top.isPC && !/iOS|Android/i.test(e.system)){
            window.location.pathname = '/uniapp-extend/static/html/pc.html';

            /* 若你的項目未設置根目錄(默認爲 / 時),則使用下方代碼 */
            // window.location.pathname = '/static/html/pc.html';
        }
    }
})
// #endif



/* ----- 爲了避免電腦瀏覽器中的滾動條影響到佈局,可在 style 標記中添加如下 CSS 代碼 ----- */

/* 條件編譯,僅在H5平臺生效 */
// #ifdef H5
body::-webkit-scrollbar,html::-webkit-scrollbar {
    display: none;
}
// #endif

 

源碼中跳轉路徑請按照自己的項目文件路徑改,因我的項目需要部署到git,則在發行H5平臺時定義了根目錄,若是默認的 / 直接根目錄,則修改正確的目錄即可,謝謝!

 

#3 效果預覽


電腦瀏覽器效果:

手機瀏覽器效果:


#4 在線體驗示例及完整源碼下載

  1. git倉庫:https://gitee.com/myDarling/uniapp-extend
  2. H5預覽:https://mydarling.gitee.io/uniapp-extend

該解決方案是簡單快速的,也可以模仿uni-app官方的h5平臺demo的解決方式,可自定義h5平臺模板,在模板中動態創建 iframe 的方式,得到更好的體驗效果,不用通過跳轉頁面,有興趣的請去自行學習。

許多人在閱讀過我的文章後,都會問我如何帶參數的問題。關於這個問題可以在跳轉 pc.html 頁面之前先獲取當前的 地址,然後打開 pc.html 頁面後,將跳轉前的地址賦值給 iframe 的  src 屬性即可!但是帶參數的意義不會很大,因爲畢竟是移動端的頁面,在PC中瀏覽會有各種事件不兼容的問題,所以去提示一個二維碼,讓用戶去用手機掃碼體驗會更好。

 

作者:黃河愛浪 QQ:1846492969,郵箱:[email protected]

微信公衆號:web-7258,本文原創,著作權歸作者所有,轉載請註明原鏈接及出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章