1. 程式人生 > >MUI框架開發HTML5手機APP(一)--搭建第一個手機APP

MUI框架開發HTML5手機APP(一)--搭建第一個手機APP

  前  言

JRedu

 隨著HTML5的不斷髮展,移動開發成為主流趨勢!越來越多的公司開始選擇使用HTML5開發手機APP,而隨著手機硬體裝置配置的不斷提升,各種開發框架的不斷優化,也使著H5開發的混合APP的體驗越來越趨於原生!那麼在本系列部落格中,我們就來一探H5開發APP的神祕面紗吧~~

一、 移動APP專案搭建

由於我們的H5編寫的都是一個個網頁,需要使用瀏覽器開啟才能使用,這顯然不是APP的使用方式。 那麼我們才能將一個手機網站,封裝成一個APP呢? 時下熱門的Cordova、PhoneGap、appMobi、WeX5等…都是主流的構建APP工具!但是這些工具有一個共同的特點——使用麻煩!!

所以,我們介紹一種最簡便的構建的方式,使用HBuilder一鍵打包!HBuilder是數字天堂旗下的一款前端開發IDE,其功能強大遠超你想象,我們使用的MUI框架,HTML5+框架,都是數字天堂旗下產品,Hbuilder+MUI這對好基友,簡直就是絕配!

1使用HBuilder新建移動APP專案

HBuilder安裝成功以後,就可以新建一個移動APP專案啦!點選“檔案—>新建—>移動APP”,輸入你的專案名稱,就可以搭建完成一個移動APP專案啦!

專案的目錄結構如下:

2manifest.json檔案介紹

專案目錄中的css/img/js/html等檔案就不一一贅述了,建好專案後我們需要新增頁面只需要新建HTML檔案即可,與開發手機網站的操作一模一樣。

而這裡面最重要的應該就是manifest.json這個檔案了,這個檔案幾乎包含了我們APP的所有設定,雙擊開啟,可以看到這個介面:

底部的選項卡可以看到,這裡麵包含了我們APP的名稱、版本號、首頁檔案、應用的圖示、應用的啟動圖片以及我們需要的各種SDK。大家可以根據自己的需求自行設定,此處不再一一贅述。

二、APP程式的打包與除錯

在上面的操作中,我們搭建了一款屬於自己的移動APP專案,那麼這個專案怎麼執行除錯,又是怎麼打包成Android以及IOS能夠安裝的APP呢?

1將專案打包成APP

首先,我們來看一下如何和將專案打包成一個能夠安裝的應用程式,這是Hbuilder最便捷的一步,也是傑小瑞老師選擇Hbuilder這款IDE的主要原因之一。

選中專案,點選Hbuilder頂部導航欄的“發行—>發行為原生安裝包”,可以看到如下頁面:

點選打包,就可以在不需要Xcode和 Android SDK的情況下,直接在雲端打包。

 

打包完成後,就可以得到安卓的apk檔案和蘋果的ipa檔案。

2直接執行除錯

上面介紹的是將專案打包成應用程式,但是開發過程中,我們每個頁面都要進行大量的除錯測試,HBuilder也是支援的。常用的方式有多種,直接通過瀏覽器除錯,通過手機執行除錯,通過模擬器除錯,都是可以。

點選執行,就可以選擇除錯模式啦~~此處不再贅述,如果需要可以評論留言哦!

三、MUI框架與HTML5+框架介紹

上面提到HBuilder編輯器、MUI框架、HTML5+框架都是數字天堂公司的知名產品。那麼MUI框架和HTML5+框架都是幹什麼的呢?

1MUI框架

MUI框架號稱是“最接近原生APP體驗的高效能前端框架”,當然這是官方的口號,傑小瑞老師不負責吹牛~ 官方文件地址:http://dev.dcloud.net.cn/mui/ 

經過我們的親身體驗,MUI框架確實對得起他的口號,當然也有很大的進步空間需要提升 但是配合HBuilder的使用,如此般順滑的操作體驗會讓你不敢相信自己在敲程式碼。 MUI給我們提供了大量的元件,只需要在HBuilder中輸入一個”m”開頭,就可以同列表中選擇形形色色各種元件!

 

選中你需要的任意一個元件,回車,一大段程式碼直接生成!比如我們選擇第一個maccordion回車,就會直接生成一大段程式碼,如下:

 

執行之後,就可以看到一個摺疊面板:

 

這相比於其他框架需要自己手寫Class的方式,這種操作是不是順滑到不能想象呀!麻麻再也不用擔心你記不住這麼多class名字了~~ 所以,MUI提供了這麼多的元件,使用如此簡單,我們也就不再一一講解了。感興趣的同學,可以進入幫助文件http://dev.dcloud.net.cn/mui/ui/ 檢視所有元件。

我們後面的內容,將主要針對MUI中的頁面跳轉、選項卡切換、Ajax、下拉重新整理&上拉載入、調取底層攝像頭的功能展開講解。

2HTML5+框架介紹

上面我們介紹了MUI框架的基本使用。也瞭解到了MUI的主要功能是搭建APP的頁面佈局所使用的框架。那麼HTML5+則是增強版的手機瀏覽器引擎,讓HTML5達到原生水平!二維碼、語音輸入、搖一搖、攝像頭、檔案系統、微信分享……等幾乎你能想到的原生底層功能,HTML5+都能幫你實現。

後續的文章中,我們也會使用到HTML5+呼叫原生攝像頭、寫入原生檔案等能力進行演示。

四、搭建第一個APP應用

介紹完了APP搭建的基本內容,我們就開始製作我們第一個移動APP吧。首先,我們為我們的APP製作一個首頁。

1建立第一個首頁

首先,我們應該新建一個index.html檔案,注意新建的時候選擇“含MUI的html檔案”,這樣可以幫助我們自動匯入所需要的各種預設配置。

建立完成後的第一個檔案,程式碼以及詳細解釋如下:

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--設定頁面的視口寬度-->
        <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
        <!--匯入頁面所需要的MUI的CSS檔案-->
        <link href="css/mui.min.css" rel="stylesheet" />
    </head>

    <body>
        <!--匯入頁面所需要的MUI的JS檔案-->
        <script src="js/mui.min.js"></script>
        <script type="text/javascript">
            // MUI頁面初始化函式
            mui.init()
        </script>
    </body>
</html>

2搭建首頁HTML佈局

首先,我們先在body中輸入“m”選擇mHead,生成頭部導航欄。

<!--頭部APP頂部導航欄區域-->
<header class="mui-bar mui-bar-nav">
    <!--導航欄左上角返回按鈕,首頁不需要返回按鈕,刪除即可-->
    <!--<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a>-->
    
    <!--導航欄標題-->
    <h1 class="mui-title">傑瑞教育APPDemo</h1>
</header>

在導航欄下面,輸入mbody,生成頁面的主體部分,其實就是一個div。 頁面中除了Header和Footer以外的全部內容,必須包裹在body中。

<div class="mui-content">
    
</div>

緊接著,我們在body中,輸入一個mList,生成一個列表。

<ul class="mui-table-view">
    <li class="mui-table-view-cell">
        <a class="mui-navigate-right">
            1、頁面載入子頁&列表跳轉詳情頁並傳參
        </a>
    </li>
    <li class="mui-table-view-cell">
        <a class="mui-navigate-right">
            2、 底部選項卡切換(Div模式)
        </a>
    </li>
    <li class="mui-table-view-cell">
        <a class="mui-navigate-right">
            3、底部選項卡切換(WebView模式)
        </a>
    </li>
    <li class="mui-table-view-cell">
        <a class="mui-navigate-right">
            4、底部選項卡切換(自定義)
        </a>
    </li>
    <li class="mui-table-view-cell">
        <a class="mui-navigate-right">
            5、圖片輪播元件
        </a>
    </li>
    <li class="mui-table-view-cell">
        <a class="mui-navigate-right">
            6、HTML5+攝像頭使用
        </a>
    </li>
    <li class="mui-table-view-cell">
        <a class="mui-navigate-right">
            7、下拉重新整理&上拉載入更多&Ajax
        </a>
    </li>
</ul>

這裡面的7個功能,也就是我們將逐一講解的7個重要功能~!是不是劇透了呢~~生成的頁面效果如下:

3為每個列表新增點選事件跳轉頁面

新增點選事件肯定就要用到JS啦~~先介紹幾個非常常用的MUI方法。

3.1 mui.init({})

mui.init方法時MUI的初始化函式,接受一個物件引數,用於進行頁面的各種配置,比如子頁面的載入、頁面預載入等。。。

下面的程式碼是利用mui.init在頁面初始化時進行頁面手勢操作的開關:

// 初始化頁面中的MUI控制元件
      mui.init({
          /*設定各種手勢操作的開關*/
          gestureConfig:{
           tap: true, //預設為true
           doubletap: true, //預設為false
           longtap: true, //預設為false
           swipe: true, //預設為true
           drag: true, //預設為true
           hold:false,//預設為false,不監聽
           release:false//預設為false,不監聽
        }
      });

3.2 mui.ready()

Mui.ready()是MUI框架中的文件就緒函式,表示mui框架已經載入完畢,接受一個回撥函式,功能上有些類似於JQuery的文件就緒函式。

// 當MUI的頁面DOM載入完成後,執行的函式。 但是,基本都使用mui.plusReady
      mui.ready(function(){
          //console.log("我在plusReady之前呼叫!");
      })

3.3 mui.plusReady ()

mui.plusReady()方法使用與mui.ready()類似,但是這個方法在執行時間上,略晚於mui.ready()。因為這個方法除了要求MUI框架載入完畢的基礎上,還要求HTML5+執行時必須準備完畢!

所以我們一般用這個函式,來代替JS中的window.onload函式。

//頁面中HTML5+相關的內容載入完畢後,執行的函式。  類似於window.onload = function(){}
      mui.plusReady(function(){
          //console.log("我在mui.ready之後呼叫!");
      })

3.4 頁面跳轉功能的實現

頁面跳轉功能的實現思路是,我們新建了一個數組,陣列中存放著與列表一一對應的連結地址 然後使用迴圈給每一個列表list新增點選事件,並開啟陣列中對應的頁面地址,程式碼如下:

var page = ["01-jiazaiziyemian.html","02-tabbarDiv.html","03-tabbarWebView.html","04-tabbarMy.html","05-imglunbo.html","06-Camera.html","07-fullPush.html"];
          
          var arr = document.getElementsByTagName("a");
          for(var i=0; i<arr.length; i++){
              !function(i){
                  // 在手機APP中,事件繫結推薦使用DOM2模型。 用tap事件取代click事件。
                  arr[i].addEventListener("tap",function(){
                      mui.openWindow({
                          url:page[i],
                          id:page[i],
                      })
                  })
              }(i);
          }

3.5 跳轉程式碼解釋

上述程式碼中,對於很多初學者來說可能會存在一些問題,下面我們來一一解釋一下這部分程式碼:

① 移動端開發中使用tap替代click

在移動端開發中,由於使用click事件會存在一定的延遲,嚴重影響使用者體驗,所以我們一律用tap事件取代所有的點選事件。

② 為什麼for迴圈中巢狀一個自執行函式?

這個問題我們在JS面向物件環節探討過,由於for迴圈會在頁面載入時直接迴圈結束,所以當我們點選list時,其中的i已經變成了陣列的長度 至於為什麼這麼解決,大家可以參考之前的部落格:http://www.cnblogs.com/jerehedu/p/7592124.html 

③mui.openWindow ()是個什麼東西?

而這個函式的完整配置項如下,當然我們上述的操作只需要一個URL和一個頁面ID即可,而且我們以後的頁面ID基本都使用URL同名的方式哦~

mui.openWindow({
    url:new-page-url,
    id:new-page-id,
    styles:{
      top:newpage-top-position,//新頁面頂部位置
      bottom:newage-bottom-position,//新頁面底部位置
      width:newpage-width,//新頁面寬度,預設為100%
      height:newpage-height,//新頁面高度,預設為100%
      ......
    },
    extras:{
      .....//自定義擴充套件引數,可以用來處理頁面間傳值
    },
    createNew:false,//是否重複建立同樣id的webview,預設為false:不重複建立,直接顯示
    show:{
      autoShow:true,//頁面loaded事件發生後自動顯示,預設為true
      aniShow:animationType,//頁面顯示動畫,預設為”slide-in-right“;
      duration:animationTime//頁面動畫持續時間,Android平臺預設100毫秒,iOS平臺預設200毫秒;
    },
    waiting:{
      autoShow:true,//自動顯示等待框,預設為true
      title:'正在載入...',//等待對話方塊上顯示的提示內容
      options:{
        width:waiting-dialog-widht,//等待框背景區域寬度,預設根據內容自動計算合適寬度
        height:waiting-dialog-height,//等待框背景區域高度,預設根據內容自動計算合適高度
        ......
      }
    }
})

好了,截止到這,我們的首頁就全部搭建完成啦!最終效果如下!

3.6 首頁最終效果預覽

當然這裡面還有很多功能我們暫時沒有實現,後面的部落格我們繼續再見吧!

作者:傑瑞教育
出處: 
傑瑞教育技有限公司和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
技術諮詢:JRedu技術交流

相關推薦

MUI框架開發HTML5手機APP()--搭建第一手機APP

  前  言 JRedu  隨著HTML5的不斷髮展,移動開發成為主流趨勢!越來越多的公司開始選擇使用HTML5開發手機APP,而隨著手機硬體裝置配置的不斷提升,各種開發框架的不斷優化,也使著H5開發的混合APP的體驗越來越趨於原生!那麼在本系列部落格中,我們就來一探H5開發APP的神祕面紗吧~~

MUI框架開發HTML5手機APP(二)--頁面跳轉傳值&底部選項卡切換

  概 述 JRedu   在上一篇部落格中,我們學習瞭如何使用Hbuilder建立一個APP,同時如何使用MUI搭建屬於自己的第一款APP,沒有學習的同學可以戳連結學習: http://www.cnblogs.com/jerehedu/p/7832808.html     今天這篇部落格,我們繼續深入學習

MUI框架開發,APP專案搭建

1.使用HBuilder新建移動APP專案  點選“檔案—>新建—>專案” 專案的目錄結構如下: 這裡面最重要的應該就是manifest.json這個檔案了,這個檔案幾乎包含了我們APP的所有設定,雙擊開啟,可以看到這個介面: 選項卡可以看

如何使用MUI框架開發移動APP介面

首先百度搜索MUI,找到MUI官網,點選進入。 2 在MUI官網,點選右上角的新手指南,可以檢視MUI框架如何搭建。 3 點選右上角的‘文件’,檢視MUI開發文件,在開發文件中,可以看到日常常用的基礎的開發元件。 4 MUI提供的文件中,主要包括UI元件和

2019最新結合MUI框架完成HTML5移動端混合應用開發教程 微信實戰教程

課程簡介: 本課程將介紹如何使用HTML5完成移動端混合應用開發,課程以移動端框架MUI為基礎,以微信專案為目標,介紹MUI框架的使用,包含移動端排版佈局,HTML5藉助框架完成手機攝像頭呼叫、手機相簿呼叫、手機重力感應呼叫等特效,並最終完成微信案例專案。 課程目標: 學習HTML5移動

微信開發實戰:結合MUI框架完成HTML5移動端混合應用開發

以移動端框架MUI為基礎,以微信專案開發為目標的視訊課程。本課程將介紹如何使用HTML5完成移動端混合應用開發,課程以移動端框架MUI為基礎,以微信專案為目標,介紹MUI框架的使用,包含移動端排版佈局,HTML5藉助框架完成手機攝像頭呼叫、手機相簿呼叫、手機重力感應呼叫等特效

mui框架開發app:列表滾動到頂部

mui開發過程中遇到列表重新整理資料時,資料更新後,列表顯示應該從新資料的第一個item開始顯示,如果不手動設定滾動到頂部,會出現不從第一個item顯示的bug。 例如程式碼為: <div id='d'>   <ul>     <li>1

結合MUI框架完成HTML5移動端混合應用開發視訊教程

1【MUI框架】HTML5混合應用開發與MUI框架2 MUI移動端框架初體驗3【微信主頁】頂部標題欄 4【微信主頁】底部Tab導航 5【微信主頁】底部Tab導航樣式調整 6【微信主頁】圖文列表7【微信專案】整體效果展示8【微信子頁面】DIV方式建立子頁面 9【真機除錯】HTML5程式真機除錯 10【微信子頁面

thinkphp5框架開發博客(

one 下載安裝 git clone 輸出 man frame php bsp 實現 1.ThinkPHP框架下載安裝 php官網:http://www.thinkphp.cn/ 開發手冊:https://www.kancloud.cn/manual/thinkphp5

Android開發系列(十):對手機通訊錄的讀取、新增、刪除、查詢

一、通訊錄介紹 通訊錄是Android手機自帶的一個應用,它是一個ContentProvider應用,其它應用可以對通訊錄進行訪問,進行對聯絡人的CRUD操作。 二、通訊錄資料庫結構的介紹 首先,我們可以在File Explorer檢視下找到contacts2.db檔案,

用UNITY5開發第一手機遊戲(1)各種插件的準備

插件 amp nvt ef6 手機遊戲 開發 fan dnv arc GPUGEMS%E2%80%94%E2%80%94%E7%AC%AC23%E7%AB%A0%E5%A4%B4%E5%8F%91%E5%8A%A8%E7%94%BB%E5%92%8C%E6%B8%B2%E6

springboot學習: 初識Spring Boot框架搭建第一專案!

專案建立初次接觸,我們先來看看如何建立一個Spring Boot專案,這裡以IntelliJ IDEA為例,其他的IDE工具小夥伴們自行搜尋建立方式:首先建立一個專案,建立時選擇Spring Initializr,然後Next,如下圖:填寫專案資訊,如下圖:填寫專案使用到的技

EMguCV搭建第一程序

mac os x 部分 .net tail 新手學 detail org 循環 mark 這篇博客旨在教學Emgucv3.0的安裝與配置。 環境:vs2013+Emgucv3.0 Emgu Cv簡介: Emgu CV 是.NET平臺下對OpenCV圖像處理庫的封裝。也

第一安卓應用

alt 技術分享 我們 提示 建模 手機 studio 應用 images 一、安裝Android studio  網址:http://www.android-studio.org/ 安裝步驟:按照提示傻瓜式安裝即可。      二、第一個Hello wo

動手搭建第一小程序音視頻Demo

post 其中 聯系我們 開發環境 會同 ng2 gets 打開 才會 歡迎大家前往雲+社區,獲取更多騰訊海量技術實踐幹貨哦~ 作者:小程序音視頻產品經理 騰訊雲提供了全套技術文檔和源碼來幫助您快速構建一個音視頻小程序,但是再好的源碼和文檔也有學習成本,為了盡快的能調試

從零開始系列之vue全家桶(4)帶新手小白一起搭建第一個人網站項目

轉載 個人網站 rfi red nbsp oot ott osx 全部 未經允許,嚴禁轉載,全文由blackchaos提供。 在安裝好了前面大部分需要的插件,我們開始進行第一個個人項目。結合vue+vuex+vue-cli+vue-router+webpack使用。

vue2.0-下載安裝vue,搭建第一項目

下一步 安裝 msi guid class 名稱 pac IE 管理 Vue.js 是什麽 Vue (讀音 /vju?/,類似於 view) 是一套用於構建用戶界面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關註視圖層,不僅

微信小程式之:雲開發初體驗--致我的第一小程式

背景:一直關注微信小程式的發展,看著小程式一步步完善,一步步壯大,心裡癢癢,也想做一個自己的微信小程式,但是苦於只會前端,不會服務端,所以想法一直被卡著。現在小程式有了雲開發,很輕鬆實現後端功能,寫後端跟寫前端沒啥區別,真的是前端小夥伴們的福音啊。 經過幾個晚上的熬夜奮戰,我的第一個微信小程式正式

Keras搭建第一神經網路(線性迴歸)

Keras介紹: Keras 是一個相容 Theano 和 Tensorflow 的神經網路高階包, 用他來元件一個神經網路更加快速, 幾條語句就能搞定。而且廣泛的相容效能使 Keras 在 Windows 和 MacOS 或者 Linux 上執行無阻礙。 Keras安裝: 首先確認

Tensorflow搭建第一邏輯迴歸(logistic regression,其實也就是單層感知機)模型

資料集: 使用吳恩達機器學習課程:https://study.163.com/course/courseMain.htm?courseId=1004570029 章節8中的課時60:程式設計作業:Logistic迴歸的資料中的資料集ex2data1.txt(訓練集)和ex2data2.t