SpringBoot系列——基於mui的H5套殼APP開發web框架


  前言

  大致原理:創建一個main主頁面,只有主頁面有頭部、尾部,中間內容嵌入iframe內容子頁面,如果在當前頁面進行跳轉操作,也是在iframe中進行跳轉,而如果點擊尾部按鈕切換模塊、頁面,那就切換iframe標簽的src進行更新url,這樣我們在跳轉頁面時,頭部、尾部都不會刷新,瀏覽效果更佳,配合mui前端框架,使操作體驗更接近原生App

  如果不用考慮APP上架審核的問題,可以采用H5套殼的方式開發APP,可以降低開發人員的學習成本,uni-app + H5這樣的套殼Web App,會Web項目開發的開發就能輕松上手

  得益於之前的總結,基於mui的H5套殼APP開發web框架,逐步完善,開源分享

 

   技術棧

  springboot + thymelea + mui

 

  效果演示

  目錄結構

 

  uni-app套殼

  1、新建uni-app項目,頁面僅使用webview組件,直接指定服務地址

<web-view id="webView" :src="url"></web-view>

  

  2、配置沉浸式

  需要設置page.json

 {
   "globalStyle": {
        "navigationStyle":"custom"
    },
    "usingComponts": true 
 }

  以及manifest.json

 "app-plus" : {
        "statusbar" : {
            "immersed" : true
        }
 }

  其他的暫時不配置,比如APP圖標、啟動圖等,提交雲端打包、下載安裝

 

  App 版比H5版多一個系統狀態欄占高

    //h5端默認隱藏
    mui.plusReady(function(){
        //顯示系統狀態欄占高
        $(".huanzi-header .statusbar").css("display","block");

        //自適應高度
        adaptiveHeight();
    });

      

 

  頭、尾操作

  分為標題頭部按鈕操作、底部按鈕操作

  

  按鈕切換模式

  按鈕切換分為兩種模式:1 切換立即加載初始url       2 切換僅回顯頁面,在當前頁面點擊才加載(切換為首次加載除外)

  切換方式也很簡單,在配置文件進行修改即可

#底部按鈕切換模式:1 切換立即加載初始url  2 切換僅回顯頁面,在當前頁面點擊才加載(切換為首次加載除外)
huanzi.buttom.switch.mode=1

 

  1 切換立即加載初始url 

 

  2 切換僅回顯頁面,在當前頁面點擊才加載(切換為首次加載除外)

 

  mui loading

  顯示:mui.showLoading('加載中...','div');

  隱藏:mui.hideLoading();

  其他mui彈窗效果,請移步官網文檔查看!

 

  自定義封裝

 

  物理按鈕監聽

 

  頂部進度條

  頂部進度條采用NProgress插件

  在main主頁面中引入,head.html的最開始處調用start

 

    <!-- 頂部進度條開始 -->
    <head>
        <script>
            //頂部進度條開始,子頁面加載才調用
            if(window.location.pathname !== "/muiwrapper/main"){
                window.parent.NProgress.start();
            }
        </script>
    </head>

 

  在iframe的onload回調中調用done

        //頂部進度條結束
        window.NProgress.done();

 

 

  更新、補充

  2020-04-27更新:

  1、新增底部按鈕動態配置,真正項目應用中,可以從數據庫動態讀取,這樣的話后面需要調整按鈕配置也不需要修改代碼,直接改配置即可

  底部按鈕

 

   以及對於的iframe

 

 

  2、自定義彈窗,告警、確認彈窗內部調用父類顯示,回調依舊執行子iframe的方法,效果就是遮陰層能后覆蓋標題欄、底部按鈕

 

   3、優化代碼main.html代碼,盡量使用thymeleaf語法;開啟初始化所有頁面功能,頁面提前加載、提高后續切換頁面體驗;

   

 

  2020-06-01更新

  1、優化tab頁切換效果,實現過渡動畫,而不是直接切換;

 

  2、同tab頁中,div窗體切換效果實現;

 

  3、新增自定義鍵盤(來自大佬的開源組件分享:https://www.jianshu.com/p/cb21ca8786a4,不支持中文),主要用於輸入密碼等對安全行為要求較高的動作

 

 

  后記

  注意,瀏覽器訪問需要打開控制台,切換到移動端模式,還有我們的適配器判斷過於簡單,有些情況下會判斷錯誤,例如360瀏覽器

  

  代碼其實不多,主要涉及都父、子窗口相互調用的問題,基於mui的H5套殼APP開發web框架暫時記錄到這,后續再進行補充

 

  代碼開源

  代碼已經開源、托管到我的GitHub、碼雲:

  GitHub:https://github.com/huanzi-qch/springBoot

  碼雲:https://gitee.com/huanzi-qch/springBoot


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM