cordova run android ? ? ? ? ? ?把應用發送到手機
ionic serve ? ? ? ?電腦瀏覽器調試命令
創建:
cordova create hello com.example.hello HelloWorld
cd hello
cordova platform add android
cordova build android
cordova emulate android
查詢
cordova platform ls
cordova plugin ls
cordova info
更新
npm update -g cordova
cordova platform update android
安裝插件默認會為每一個平臺都裝上,plugman 是用來為不同平臺定制不同插件
批量添加移除插件:
$ cordova plugin add org.apache.cordova.console org.apache.cordova.device
$ cordova plugin remove org.apache.cordova.console org.apache.cordova.device
通過git下載插件
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
蘋果系統下需要加sudo:
sudo npm install -g cordova
插件:
inappbrowser:https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-inappbrowser.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser.git
掃描:https://github.com/phonegap/phonegap-plugin-barcodescanner
Android用:cordova plugin add https://github.com/phonegap/phonegap-plugin-barcodescanner.git
ios 用: cordova plugin add phonegap-plugin-barcodescanner
zbar
cordova plugin add org.cloudsky.cordovaplugins.zbar
獲取版本:
cordova plugin add https://github.com/whiteoctober/cordova-plugin-app-version.git
獲取splashscreen
cordova plugin add cordova-plugin-splashscreen
Android:cordova create top cn.topsunny.top.clubapp?TOP商家系統
ios:cordova create top com.topsunny TOP商家系統
需要重新創建項目時,可以直接把插件復制進去就不用自己下載了,但是不要把json文件也復制進去
如果被墻的話:
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g ionic
打包成指定版本:
ionic platform add android -4.4.2
ion-nav-buttons 可以定制nav的頭部按鈕,它的slide屬性,primary and secondary 會因為Android和ios而不同,如果需要跨平臺固定左右,就使用left,right。并且這個標簽必須是ion-view or ion-nav-bar元素的直接后代
不要把 ?ion-tabs?放在 ion-content?元素里面,會導致CSSbug
ion-header-bar的no-tap-scroll屬性。當點擊標題時,是否將內容區域自動滾動到最開始。允許值:true | false,默認為true。
<ion-content overflow-scroll="true">...</ion-content> ?超出顯示滾動條
ionic resources --icon ? ?ionic resources --splash ??程序會自動幫你裁切出需要的各種規格的icon和啟動圖
為什么要用react native:
1. Native的原生控件有更好的體驗;
2. Native有更好的手勢識別;
3. Native有更合適的線程模型,盡管Web Worker可以解決一部分問題,但如圖像解碼、文本渲染仍無法多線程渲染,這影響了Web的流暢性。
4. Native能實現更豐富細膩的動畫效果,歸根結底是現階段Native具有更好的人機交互體驗。
緩存是個很不好控制的東西,靈活性、兼容性都有問題。 我們的解決方案不是緩存,就是真的存本地。
一、應用的HTML5、js、css 頁面就是放到本地,升級通過wgtu方式升級,可以單獨更新某個文件。參考http://ask.dcloud.net.cn/article/199
二、除了應用頁面,里面引入的服務器端的圖片要緩存在本地,有2種做法: 1. plus.downloader存在本地,然后img對象的src用js動態賦值指向到本地地址 2. img對象直接載入遠端服務器圖片,然后base64轉存到本地io上。
瞬間模糊問題:應該是硬件加速的問題,關閉硬件加速試試。另外圖片大小要控制,Android渲染占用的資源過多,就會被系統處理掉,再次渲染會來不及,就會先虛一下。
一般影響內存的就是同時存在的webview的數量和webview里對渲染資源的消耗。一方面不用的webview盡量關閉或hide掉。另一方面處理好前端代碼。dom和css的渲染確實比原生ui渲染占用更多內存,要盡量控制dom和css的復雜度,避免js操作大量dom渲染。很多前端在寫pc web時比較熱衷的一些技術其實是不可取的,在mobile上請老老實實寫整潔的代碼,少用框架、少用動態執行的模板、不用css reset、減少css覆蓋。
官方目前只做了支付寶和微信支付。有4種方式擴展:1. 直接使用這些三方支付的手機網頁版2. 使用ping++ sdk,http://ask.dcloud.net.cn/article/246 ?3. plus.payment是開源的,github遷個分支,直接改,改完提交給我們。https://github.com/dcloudio/H5P.Plugins.payment.Alipay4. 使用5+ sdk,采用原生插件的方式集成這些三方支付的sdk
同一個webview里,div的層次不可能高于原生控件。就像div蓋不住flash一樣。想蓋住只能新開一個webview。
用5+sdk來集成,諸如百度的拍照識別sdk。參考文檔中心5+ sdk章節
uploader本來就是無界面的js的api。只要提交上傳的那段js所在的webview不close,程序就會一直上傳。但如果程序被切換到os的后臺,就不一定還能執行多長時間了,這個看操作系統如何做節電管理了。
ios支持websocket。 Android4.4起支持websocket。 Android 4.4以下,可以使用Native.js,http://ask.dcloud.net.cn/question/60
或者使用socket.io等三方js庫,它在不支持websocket時自動切換為http輪詢。
webview最大,它其實就是os的webview,代表一個瀏覽器容器,這種原生對象原本js是不能操作的,但HTML5+擴展了plus.webview,使得js可以操作這個原生對象。webview里載入網頁,每個webview有一個自己的window和dom。
如果是切后臺再進來閃一下,應該是頭部使用了fix,去掉fix。fix在有些Android手機上會引發渲染滯后。另外ios下用fix確實問題很多,少用fix吧。
搜索輸入框輸入完內容點擊輸入法上的回車或者搜索鍵,然后執行一個js方法。js標準的onkeydown、onkeypress事件都可以用,回車的code是13。
plus.key監聽的是軟鍵盤之外的物理按鍵,軟鍵盤的監聽不需要plus提供api
閃屏是發生了重繪,檢查下有幾處操作造成重繪了。有時看起來只改一個地方,但相關的css選擇器也可能觸發重繪。但一次更改不會閃屏,連續多次并發重繪操作才會閃屏。另外fix慎用,很容易閃屏。
閃退應該是內存不足。在Android5上開啟硬件加速后,會占用更多的內存,處理不好就會渲染異常或閃退。一般減少內存的方式是減少webview。不用的 webview要及時close。全屏webview在不顯示時是不會占用太多資源的,但subpage的子webview或append的子webview,即使不顯示也是會占用資源的,如webview選項卡,要謹慎使用。
Android4.4的內核是chrome內核,Android4.4以下是Android webkit 內核,存在瀏覽器兼容問題,需要避免使用特殊寫法。
Focus 事件在手機上需要一個完整的按下、彈起。在input上,只有按下、沒有彈起,所以 focus 沒有正確觸發
xcode 打包報錯需要bitcode的話,到build setting把它設置為no。實在解決不了的問題就重新建項目吧!
更新xcode7.1之后,運行不報錯,archive打包碰到"error - Cordova/CDVViewController.h file not found. " 需要添加 "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" 到這里Build Settings -> Header Search Paths
http://forum.ionicframework.com/t/cordova-cdvviewcontroller-h-file-not-found-in-xcode-7-1-beta/32232/5
Certificate用來給應用程序簽名的,只有經過簽名的應用程序才能保證他的來源是可信任的,并且代碼是完整的,在Xcode Build Setting的Code Signing Identity中,你可以設置用于為代碼簽名的證書。
我們申請一個Certificate之前,需要先申請一個Certificate Signing Request (CSR) 文件,而這個過程中實際上是生成了一對公鑰和私鑰,保存在你Mac的Keychain中。代碼簽名正是使用這種基于非對稱秘鑰的加密方式,用私鑰進行簽名,用公鑰進行驗證。

App ID用于標識一個或者一組App,App ID應該是和Xcode中的Bundle ID是一致的或者匹配的。App ID主要有以下兩種:
Explicit App ID:唯一的App ID,這種App ID用于唯一標識一個應用程序,例如com.ABC.demo1,標識Bundle ID為com.ABC.demo1的程序。
Wildcard App ID:通配符App ID,用于標識一組應用程序。例如*可以表示所有應用程序,而com.ABC.*可以表示以com.ABC開頭的所有應用程序。
Provisioning Profile決定Xcode用哪個證書(公鑰)/私鑰組合(Key Pair/Signing Identity)來簽署應用程序(Signing Product),將在應用程序打包時嵌入到.ipa包里。安裝應用程序時,Provisioning Profile文件被拷貝到iOS設備中,運行該iOS App的設備也通過它來認證安裝的程序。
如果要打包或者在真機上運行一個APP,一般要經歷以下三步:
- 首先,需要指明它的App ID,并且驗證Bundle ID是否與其一致;
- 其次,需要證書對應的私鑰來進行簽名,用于標識這個APP是合法、安全、完整的;
- 然后,如果是真機調試,需要確認這臺設備是否授權運行該APP。
http://www.cnblogs.com/cywin888/p/3263027.html