ionic是一個強大的混合式/hybridHTML5移動開發框架,特色是使用標準的HTML、 CSS和JavaScript,開發跨平臺(目前支持:Android、iOS,計劃支持:Windows Phone、Firefox OS) 的原生App應用css
ionic主要包括三個部分:html
須要下載並安裝node.js。 地址: https://nodejs.org/en/download/前端
npm install -g cordova ionicnode
ionic start myApp tabs / blank / sidemenuandroid
使用Ionic tool 建立 ,測試,運行你的apps(或者經過Cordova直接建立),若是要建立android應用,把右側建立代碼中的ios改成android。ios
1 2 3 4 |
cd myApp ionic platform add ios/ android ionic build ios /android ionic emulate ios /android |
更新www/lib/ionic 目錄的文件,若有項目中有bower,此命令會運行bower update ionic, 不然則會從CDN上下載文件並替換。nginx
建立一個項目,其中template能夠是內置的模板類型:blank/sidemenu/tabs(default)三種,也能夠是github地址:https://github.com/driftyco/ionic-starter-tabs (這叫ionoic-starter),或者是Codepen starter地址:http://codepen.io/ionic/pen/odqCzgit
可選的參數: -a your_app_name -i com.yourcompany.youapp -w (不要用cordova)github
啓動一個本地的server,在瀏覽器中打開,並可監視文件變化,隨時刷新瀏覽器。// 能夠在主目錄下的ionic.project文件的watchPatterns中配置要監視的文件夾。web
1 2 3 4 5 6 7 8 |
{ "name": "myApp", "app_id": "", "watchPatterns": [ "www/js/*", "!www/css/**/*" ] } |
ionic setup sass
增長一個watchPatterns到ionic.project中。
ionic serve –lab
在瀏覽器中打開ios和andriod的顯示界面
ionic serv –address 68.52.96.10
在瀏覽器中打開ios和andriod的顯示界面
發表於 2016-05-21
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
(function($){ $.module("m1",["ionic"]) .factory('dogmaCacheBuster', [ function() { return function(path) { console.log(path) return path + '?_=' + Date.now(); }; } ]) .config(function($stateProvider,dogmaCacheBusterProvider){ console.log(dogmaCacheBusterProvider.$get()("ddd")) $stateProvider .state("index",{ url:"/index", templateUrl:"index" }).state('main',{ templateUrl:"main" }).state("third",{ templateUrl:"third.html" }) }).controller("oneCtrl",function($scope,$state){ $state.go("main"); }) })(angular); |
發表於 2016-05-21
Cordova提供了一組設備相關的API,經過這組API,移動應用可以以JavaScript訪問原生的設備功能,如攝像頭、麥克風等。
Cordova還提供了一組統一的JavaScript類庫,以及爲這些類庫所用的設備相關的原生後臺代碼。Cordova支持以下移動操做系統:iOS, Android,ubuntu phone os, Blackberry, Windows Phone, Palm WebOS, Bada 和 Symbian。
Cordova是PhoneGap貢獻給Apache後的開源項目,是從PhoneGap中抽離出的核心代碼,是驅動PhoneGap的核心引擎。有點相似Webkit和Google Chrome的關係。淵源就是:早在2011年10月,Adobe收購了Nitobi Software和它的PhoneGap產品,而後宣佈這個移動Web開發框架將會繼續開源,並把它提交到Apache Incubator,以便徹底接受ASF的管治。固然,因爲Adobe擁有了PhoneGap商標,因此開源組織的這個PhoneGap v2.0版產品就改名爲Apache Cordova。(目前Adobe PhoneGap <===>Apache Cordova,彷佛只是包名不同而已,將來會有多大變化與改變,拭目以待吧!!)
cordova create Hello com.51itcto.cordova Hello
1 2 3 |
第一個參數hello,指定目錄名稱。 第二個參數com.example.hello相似C#的命名空間,或Java的包名。(不太肯定,讀者自行鑑別,原文寫的是a reversedomain-style identifier) 第三個參數指定了應用程序的顯示標題。 |
cd Hello
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
經過 ngCordova 提供的方法實現,拍照返回64位的圖片數據 (成功了,但是圖片數據即便100%的質量也很不清晰) var options = { quality: 50, destinationType: Camera.DestinationType.DATA_URL, sourceType: Camera.PictureSourceType.CAMERA, allowEdit: true, encodingType: Camera.EncodingType.JPEG, targetWidth: 100, targetHeight: 100, popoverOptions: CameraPopoverOptions, saveToPhotoAlbum: false }; $cordovaCamera.getPicture(options).then(function(imageData) { var image = document.getElementById('myImage'); image.src = "data:image/jpeg;base64," + imageData; }, function(err) { // error }); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
拍照返回圖片文件的實際存儲地址(實驗不成功,暫沒找到問題) var options = { destinationType: Camera.DestinationType.FILE_URI, sourceType: Camera.PictureSourceType.CAMERA, }; $cordovaCamera.getPicture(options).then(function(imageURI) { var image = document.getElementById('myImage'); image.src = imageURI; }, function(err) { // error }); $cordovaCamera.cleanup().then(...); // only for FILE_URI 返回的圖片地址信息爲(file:///storage/emulated/0/DCIM/Camera/pic.jpg) 與選取圖片文件插件方法返回的圖片地址(data/data下)不同 |
這個插件採用的是開源版的zxing,若是性能、識別率不知足需求的話,建議使用Scandit,它提供了Community SDK,而且支持Platforms(iOS/Android)、Frameworks(Titanium/Xamarin/Phonegap/Worklight)。其中Community版的支持UPC-A / UPC-E、EAN8 / EAN1三、QR Code。
cordova plugin add https://github.com/wildabeast/BarcodeScanner.git
1 2 3 4 5 6 7 8 9 10 11 12 13 |
function scanCode() { cordova.plugins.barcodeScanner.scan( function (result) { alert("We got a barcode\n" + "Result: " + result.text + "\n" + "Format: " + result.format + "\n" + "Cancelled: " + result.cancelled); }, function (error) { alert("Scanning failed: " + error); } ); } |
cordova plugin add org.apache.cordova.contacts
//列表界面 var list = this.getList(); var options = new ContactFindOptions(); var fields = ["displayName", "phoneNumbers"]; if(filter){ options.filter = filter; }else{ options.filter = ""; } options.multiple = true; navigator.contacts.find(fields,function(contacts) { console.log('Found ' + contacts.length + ' contacts.'); var records = []; for(var i =0; i < contacts.length; i++){ var obj = { displayName: contacts[i].displayName, phoneNumber: contacts[i].phoneNumbers[0].value }; records.push(obj); } var store = new Ext.data.Store({ data: records, fields: ["displayName", "phoneNumber"] }); list.setStore(store); }, function onError(contactError) { alert('onError!'); },options);
cordova plugin add https://github.com/DoubleSpout/phonegap_baidu_sdk_location.git
發表於 2016-05-20
服務器採用的是windows server 2003,有些項目但願採用nodejs來寫服務端,可是試了不少次在windows上安裝nodejs,安裝不是很成功,最後發現須要採用nodejs 5.0左右的版本,最新的和最低的node版本都不行,因此推薦使用中間版原本搭建。可是若是採用node來作服務器端須要綁定域名,這個時候能夠採用nginx來作代理。
使用taobao的nodejs源,taobao的地址:https://npm.taobao.org/
1 2 3 |
location /{ proxy_pass http://127.0.0.1:4001 } |