无码人妻精一区二区三区,eeuss影院www在线观看,无码精品久久久久久人妻中字,日韩av高清在线看片

推薦新聞
MUI框架開發(fā)HTML5手機APP(一)--搭建第一個手機APP
發(fā)布者:深藍互聯(lián)
發(fā)布時間:2019-12-18
點擊:次
一、 移動APP項目搭建

 

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

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

HBuilder下載地址:http://www.dcloud.io/ ,下載完成后傻瓜式安裝即可。

 

1使用HBuilder新建移動APP項目

HBuilder安裝成功以后,就可以新建一個移動APP項目啦!點擊“文件—>新建—>移動APP”,輸入你的項目名稱,就可以搭建完成一個移動APP項目啦!

項目的目錄結(jié)構(gòu)如下:

 

2manifest.json文件介紹

項目目錄中的css/img/js/html等文件就不一一贅述了,建好項目后我們需要新增頁面只需要新建HTML文件即可,與開發(fā)手機網(wǎng)站的操作一模一樣。

而這里面最重要的應(yīng)該就是manifest.json這個文件了,這個文件幾乎包含了我們APP的所有設(shè)置,雙擊打開,可以看到這個界面:

底部的選項卡可以看到,這里面包含了我們APP的名稱、版本號、首頁文件、應(yīng)用的圖標、應(yīng)用的啟動圖片以及我們需要的各種SDK。大家可以根據(jù)自己的需求自行設(shè)置,此處不再一一贅述。

 

二、APP程序的打包與調(diào)試

 

在上面的操作中,我們搭建了一款屬于自己的移動APP項目,那么這個項目怎么運行調(diào)試,又是怎么打包成Android以及IOS能夠安裝的APP呢?

 

1將項目打包成APP

首先,我們來看一下如何和將項目打包成一個能夠安裝的應(yīng)用程序,這是Hbuilder最便捷的一步,也是杰小瑞老師選擇Hbuilder這款I(lǐng)DE的主要原因之一。

選中項目,點擊Hbuilder頂部導航欄的“發(fā)行—>發(fā)行為原生安裝包”,可以看到如下頁面:

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

 

打包完成后,就可以得到安卓的apk文件和蘋果的ipa文件。

 

2直接運行調(diào)試

上面介紹的是將項目打包成應(yīng)用程序,但是開發(fā)過程中,我們每個頁面都要進行大量的調(diào)試測試,HBuilder也是支持的。常用的方式有多種,直接通過瀏覽器調(diào)試,通過手機運行調(diào)試,通過模擬器調(diào)試,都是可以。

點擊運行,就可以選擇調(diào)試模式啦~~此處不再贅述,如果需要可以評論留言哦!

 

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

上面提到,HBuilder編輯器、MUI框架、HTML5+框架都是數(shù)字天堂公司的知名產(chǎn)品。那么MUI框架和HTML5+框架都是干什么的呢?

 

1MUI框架

 

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

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

 

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

 

運行之后,就可以看到一個折疊面板:

 

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

我們后面的內(nèi)容,將主要針對MUI中的頁面跳轉(zhuǎn)、選項卡切換、Ajax、下拉刷新&上拉加載、調(diào)取底層攝像頭的功能展開講解。

 

2HTML5+框架介紹

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

官方給出了一句話: 40萬原生API能力隨意調(diào)用。功能可謂強大,可以點擊進入詳細了解:http://www.dcloud.io/runtime.html 

后續(xù)的文章中,我們也會使用到HTML5+調(diào)用原生攝像頭、寫入原生文件等能力進行演示。

 

四、搭建第一個APP應(yīng)用

 

介紹完了APP搭建的基本內(nèi)容,我們就開始制作我們第一個移動APP吧。首先,我們?yōu)槲覀兊腁PP制作一個首頁。

 

1創(chuàng)建第一個首頁

首先,我們應(yīng)該新建一個index.html文件,注意新建的時候選擇“含MUI的html文件”,這樣可以幫助我們自動導入所需要的各種默認配置。

創(chuàng)建完成后的第一個文件,代碼以及詳細解釋如下:

復制代碼
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--設(shè)置頁面的視口寬度-->
        <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頁面初始化函數(shù)
            mui.init()
        </script>
    </body>
</html>
復制代碼

 

2搭建首頁HTML布局

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

復制代碼
<!--頭部APP頂部導航欄區(qū)域-->
<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以外的全部內(nèi)容,必須包裹在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、頁面加載子頁&列表跳轉(zhuǎn)詳情頁并傳參
        </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為每個列表添加點擊事件跳轉(zhuǎn)頁面

 

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

3.1 mui.init({})

mui.init方法時MUI的初始化函數(shù),接受一個對象參數(shù),用于進行頁面的各種配置,比如子頁面的加載、頁面預加載等。。。

下面的代碼是利用mui.init在頁面初始化時進行頁面手勢操作的開關(guān):

 

復制代碼
// 初始化頁面中的MUI控件
      mui.init({
          /*設(shè)置各種手勢操作的開關(guān)*/
          gestureConfig:{
           tap: true, //默認為true
           doubletap: true, //默認為false
           longtap: true, //默認為false
           swipe: true, //默認為true
           drag: true, //默認為true
           hold:false,//默認為false,不監(jiān)聽
           release:false//默認為false,不監(jiān)聽
        }
      });
復制代碼

 

3.2 mui.ready()

Mui.ready()是MUI框架中的文檔就緒函數(shù),表示mui框架已經(jīng)加載完畢,接受一個回調(diào)函數(shù),功能上有些類似于JQuery的文檔就緒函數(shù)。

// 當MUI的頁面DOM加載完成后,執(zhí)行的函數(shù)。 但是,基本都使用mui.plusReady
      mui.ready(function(){
          //console.log("我在plusReady之前調(diào)用!");
      })

 

3.3 mui.plusReady ()

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

所以我們一般用這個函數(shù),來代替JS中的window.onload函數(shù)。

//頁面中HTML5+相關(guān)的內(nèi)容加載完畢后,執(zhí)行的函數(shù)。  類似于window.onload = function(){}
      mui.plusReady(function(){
          //console.log("我在mui.ready之后調(diào)用!");
      })

3.4 頁面跳轉(zhuǎn)功能的實現(xiàn)

頁面跳轉(zhuǎn)功能的實現(xiàn)思路是,我們新建了一個數(shù)組,數(shù)組中存放著與列表一一對應(yīng)的鏈接地址。 然后使用循環(huán)給每一個列表list添加點擊事件,并打開數(shù)組中對應(yīng)的頁面地址,代碼如下:

復制代碼
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 跳轉(zhuǎn)代碼解釋

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

① 移動端開發(fā)中使用tap替代click

在移動端開發(fā)中,由于使用click事件會存在一定的延遲,嚴重影響用戶體驗,所以我們一律用tap事件取代所有的點擊事件。

② 為什么for循環(huán)中嵌套一個自執(zhí)行函數(shù)?

這個問題我們在JS面向?qū)ο蟓h(huán)節(jié)探討過,由于for循環(huán)會在頁面加載時直接循環(huán)結(jié)束,所以當我們點擊list時,其中的i已經(jīng)變成了數(shù)組的長度。 至于為什么這么解決,大家可以參考之前的博客:http://www.cnblogs.com/jerehedu/p/7592124.html 

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

mui.openWindow是MUI官方給我們提供的專門用于打開一個新窗口的函數(shù),詳細的使用教程可以參考:http://dev.dcloud.net.cn/mui/window/#openwindow 

而這個函數(shù)的完整配置項如下,當然我們上述的操作只需要一個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:{
      .....//自定義擴展參數(shù),可以用來處理頁面間傳值
    },
    createNew:false,//是否重復創(chuàng)建同樣id的webview,默認為false:不重復創(chuàng)建,直接顯示
    show:{
      autoShow:true,//頁面loaded事件發(fā)生后自動顯示,默認為true
      aniShow:animationType,//頁面顯示動畫,默認為”slide-in-right“;
      duration:animationTime//頁面動畫持續(xù)時間,Android平臺默認100毫秒,iOS平臺默認200毫秒;
    },
    waiting:{
      autoShow:true,//自動顯示等待框,默認為true
      title:'正在加載...',//等待對話框上顯示的提示內(nèi)容
      options:{
        width:waiting-dialog-widht,//等待框背景區(qū)域?qū)挾?,默認根據(jù)內(nèi)容自動計算合適寬度
        height:waiting-dialog-height,//等待框背景區(qū)域高度,默認根據(jù)內(nèi)容自動計算合適高度
        ......
      }
    }
})
復制代碼

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

3.6 首頁最終效果預覽

當然這里面還有很多功能我們暫時沒有實現(xiàn),后面的博客我們繼續(xù)再見吧!

如若想要源碼可戳http://www.jredu100.com/index.php?m=content&c=index&a=show&catid=65&id=38自行下載。

 

關(guān)注深藍互聯(lián)公眾號
Copyright ? 2013-2025 深藍互聯(lián) 版權(quán)所有
友情鏈接: