ionic 依賴angular.在學以前,我對angular進行了一下入門。javascript
最近在看ionic,想作一些筆記,因此,寫下這個隨筆,有什麼不對的請多多指教,剛開始學,後面還會學Apache Cordova,先一個一個來!css
學ionic的基礎html
javascript html css angular.js java
一、首先 ionic是什麼? angularjs
ionic 是一個強大的 HTML5 應用程序開發框架(HTML5 Hybrid Mobile App Framework )。 能夠幫助您使用 Web 技術,好比 HTML、CSS 和 Javascript 構建接近原生體驗的移動應用程序。web
ionic 主要關注外觀和體驗,以及和你的應用程序的 UI 交互,特別適合用於基於 Hybird 模式的 HTML5 移動應用程序開發。 api
ionic是一個輕量的手機UI庫,具備速度快,界面現代化、美觀等特色。爲了解決其餘一些UI庫在手機上運行緩慢的問題,它直接放棄了IOS6和Android4.1如下的版本支持,來獲取更好的使用體驗。數組
好吧,有點太官方了。咱們看 Ionic 能給咱們提供什麼? 一個樣式庫,你能夠使用它 來 裝飾你的 HTML 網頁 ,看起來像移動程序的 界面,什麼 header 、content、footer、grid、list。這貌似沒什麼 實質性的東西, sencha touch ,jq 都能提供 。promise
一個用 angularjs 寫的工具庫,姑且叫它組件庫吧。框架
固然它 還包含 了angular-animate、angular-resource、angular-sanitize、angular-ui-router,適應移動平臺的模塊庫。
這裏小帶一句
二、Apache Cordova 是什麼?
Apache Cordova 提供用 Javascript 訪問 移動平臺 的 API 。
其內部是用每一個 平臺下的 web view 組件,運行 程序,而後實現了 每一個平臺下的 一套 CordovaLib 供你寫的程序調用,而後你就能夠 調用 攝像頭、磁盤等 重api。
開始學習。
這裏的css 部份,我就不寫了。之後遇到問題再寫
js部份
http://www.ionic.wang/js_doc-index-id-52.html
這是我感受比較有意思的js方法。網上看到的,記錄一下。
模態對話框 : $ionicModal 模態對話框經常使用來供用戶進行選擇或編輯,在模態對話框關閉以前,其餘 的用戶交互行爲被阻止。
在ionic中使用模態對話框有三個步驟:
1.聲明對話框模板
使用ion-modal-view指令聲明對話框模板,對話框模板一般置入 script內以構造內聯模板:
<script id="a.html" type="text/ng-template"> <ion-modal-view> </ion-modal-view> </script>
2.建立對話框對象
服務$ionicModal有兩個方法用來建立對話框對象:
3.操做對話框對象
對象框對象有如下方法用於顯示、隱藏或刪除對話框:
上拉菜單是一個自屏幕底部向上滑出的菜單,一般用來讓用戶作出選擇。
ionic的上拉菜單由三種按鈕組成,點擊任何按鈕都自動關閉上拉菜單:
取消按鈕 - 取消按鈕老是位於菜單的底部,用戶點擊該按鈕將關閉。一個上拉菜單 最多有一個取消按鈕。 危險選項按鈕 - 危險選項按鈕文字被標紅以明顯提示。一個上拉菜單最多有一個 危險選項按鈕。 自定義按鈕 - 用戶定義的任意數量的按鈕。 在ionic中使用上拉菜單須要遵循如下步驟:
1.定義上拉菜單選項
使用一個JSON對象定義上拉菜單選項,包括如下字段:
2.建立上拉菜單
$ionicActionSheet服務的show()方法用來建立上拉菜單,返回一個函數,調用該 返回函數能夠關閉此菜單。
彈出框一般用於提醒、警告等,在用戶響應以前其餘交互行爲不能繼續。與模態 對話框覆蓋整個屏幕空間不一樣,彈出框一般僅佔據一部分屏幕空間。
在ionic中,使用$ionicPopup服務管理彈出框:
$ionicPopup.show(options) .then(function(){ //這個函數在彈出框關閉時被調用 });
show()方法返回的是一個promise對象,當彈出框關閉後,該對象被解析,這意味着 then()方法指定的參數函數此時將被調用。
show()方法的參數options是一個JSON對象,能夠包括如下字段:
除了show()方法,$ionicPopup還針對一些特定場景提供了簡化的方法,這些方法不須要 自定義按鈕,只須要設置title和template便可:
浮動框一般用以非侵入的方式提供當前視圖的額外信息。
在ionic中使用浮動框的幾個步驟:
1.聲明模板
須要首先利用ion-popover-view指令聲明一個模板內容:
<ion-popover-view> <!--模板內容--> </ion-popover-view>
2.建立浮動框對象
使用$ion-popover服務的如下方法建立浮動框對象:
注意:這兩個方法返回的都是promise對象,在浮動框對象被構造 成功後獲得解析,這時能夠獲取浮動框對象:
$ionicPopover.fromTemplate(...) .then(function(popover){ //popover參數是浮動框對象 });
3.操做浮動框對象
浮動框對象提供如下方法:
show() - 顯示浮動框 hide() - 關閉浮動框 remove() - 移除浮動框 isShown() - 浮動框是否處於顯示狀態?
當進行耗時的操做時,能夠使用載入指示器提示用戶操做進行中,並暫時阻止交互。 載入指示器一般會疊加一個半透明的幕布層以便阻止用戶的交互。
在ionic中,使用$ionicLoading服務操做載入指示器:
show()方法的options參數是一個JSON對象,能夠包含以下字段:
若是要在多處都使用載入指示器,統一對options參數進行配置是一個更好的方法,這樣 在應用時直接調用show()方法而沒必要傳遞參數了。這經過定義一個constant provider來實現:
angular.module("ezApp", ["ionic"]) .constant("$ionicLoadingConfig",{ template : "default loading template ..." })
$ionicLoading服務會經過注入器查找這個常量,若是存在就使用其值做爲參數進行顯示。
在浮動框、載入指示器中咱們已經接觸過背景幕。它是一個覆蓋全屏的半透明圖層,用來 阻止用戶的交互行爲。
咱們能夠使用*$ionicBackdrop*服務單獨地使用背景幕:
在UI中可能有多個指令/元素都使用背景幕,爲每一個指令都建立單獨的背景幕是不明智的。
事實上,$ionicBackdrop服務在DOM中只保留有一個背景幕。每次當使用retain()方法時, 只是給背景幕加一次鎖,release()方法只是給背景幕解一次鎖。若是retain()被調用三次, 背景幕將一直顯示,直到release()也被調動三次後才隱藏。