--- 廖馬兒
1.hybird介紹
新浪微博有 webapp版本
《百度app》 就是hybird app
native app就不用說了
Store里的新聞類APP音诈,視頻類APP普遍采取的是Native的框架幻碱,Web的內(nèi)容
i.e.
1)webApp:
2)混合app
3)native(就是原生)
略
2.擁有下面特點的就是一個Web App
了:使用瀏覽器運(yùn)行;純Web前端架構(gòu)细溅,很多重要手機(jī)特性無法訪問褥傍,例如聯(lián)系人以及Push notification
之類的;Single Page App
喇聊;銷售渠道多限于瀏覽器.
3.對比:
1)native(原生) app: 安卓開發(fā)恍风,IOS開發(fā),黑莓,塞班朋贬,wIndows phone 等凯楔。
要滿足這么多系統(tǒng)的話,只需要hybird一種兄世。
2)用戶體驗要最求極致的話啼辣,還是選擇native開發(fā)。
4.Hybird 基于 WebView的
UIWebView 與 WKWebView 的比較
UIWebView由于其API不好用御滩,有的功能不齊全鸥拧,還有內(nèi)存泄漏。
iOS8之后出了WKWebView削解。WKWebView提供了一系列API來使得Native與Web的信息交換簡單高效富弦。WKWebView使用與Safari相同的JS引擎+內(nèi)置手勢+無內(nèi)存泄漏。(總之WKWebView比UIWebView好很多)
iOS8之后WKWebView出現(xiàn)氛驮,目的是代替UIWebView.
5.主要技術(shù)在于:
JS+Native兩者相互調(diào)用腕柜。語言:JS+HTML5 。
6.Hybird App 開發(fā)主流平臺:
主流的平臺包括PhoneGap(Cordova)矫废,AppCan盏缤,appMobi,Titanium
都是基于webkit(https://github.com/WebKit/webkit)開源內(nèi)核蓖扑,使用HTML5 標(biāo)準(zhǔn)開發(fā)唉铜,適配機(jī)型簡單,支持開發(fā)者自定義插件
最主要的兩類的開發(fā)平臺:
PhoneGap(Cordova) vs AppCan
PhoneGap優(yōu)點:
PhoneGap可以基于一些開源的框架提升用戶體驗律杠。
PhoneGap也提供了比較豐富
的原生插件調(diào)用潭流。
可以使用DreamWeaver開發(fā),開發(fā)速度可以加快柜去。
Native接口比較豐富灰嫉,通過封裝的API可以直接訪問硬件,比如說加速嗓奢,相機(jī)讼撒,指南針,GPS蔓罚,文件訪問等椿肩。
PhoneGap缺點:
需要針對相應(yīng)的平臺環(huán)境配置,進(jìn)行編譯豺谈,打包測試郑象,發(fā)布等等。eg:iOS的環(huán)境配置茬末,打包測試你要懂厂榛,Android的環(huán)境配置盖矫,打包測試要懂。
使用效果慢击奶,啟動慢辈双,頁面切換相應(yīng)慢,數(shù)據(jù)請求慢柜砾,相對native湃望。
國外使用多,文檔基本是英文痰驱。
AppCan特點:
中國使用的比較多证芭。(http://www.appcan.cn)
AppCan不僅封裝了類似于PhoneGap的本地調(diào)用功能,而且封裝了uexWindow多窗口機(jī)制担映,實現(xiàn)了移動端的iframe效果废士。
不是開源項目。
appcan目前分兩個版本:大眾版蝇完、企業(yè)版官硝。
AppCan優(yōu)點:
擁有提供的集成開發(fā)環(huán)境的IDE進(jìn)行模擬器開發(fā)。(
AppCanIDE)有windows版本短蜕,也有Mac OS X版本氢架。
可以在線打包,不需要像Cordova要了解那么多平臺的配置朋魔。
支持更多的原生調(diào)用达箍,比如UI控件的封裝,通訊類(socket)铺厨,地圖,支付寶等更多的原生控件支持硬纤。
擁有統(tǒng)一數(shù)據(jù)統(tǒng)計平臺解滓,便于運(yùn)營管理開發(fā)的應(yīng)用。
AppCan缺點:
暫時只支持iOS筝家,Android兩大平臺洼裤。
許多功能需要企業(yè)版才能實現(xiàn),不過是收費的溪王。
知乎上面對AppCan的評價:
作者:匿名用戶
鏈接:https://www.zhihu.com/question/23211519/answer/23928305
來源:知乎
著作權(quán)歸作者所有腮鞍,轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)。
看你做什么了莹菱,小東西還是挺不錯(幾個頁面移国,不太復(fù)雜的),但稍微靠譜點的東西道伟,還是不推薦appcan迹缀。
appcan目前分兩個版本:大眾版使碾、企業(yè)版。
大眾版其實就是免費版祝懂,但功能有缺失(比如不能點對點推送票摇、不能本地打包,必須上傳到他們服務(wù)器砚蓬,否則打包出的app帶有他們的水邮该拧),企業(yè)版售價5W(聽買過的人說的灰蛙,具體我沒找官方咨詢過)祟剔,可以點對點推送,同時官方提供一些比較實用的插件(支付缕允、分享之類的)峡扩,同時好像可以自己開發(fā)插件(這點還沒確認(rèn))。
appcan有一點非痴媳荆坑爹教届,就是打包好的app會加入他們的一些代碼,這些代碼會做一些服務(wù)器請求驾霜,然后呢案训,由于他們的服務(wù)器非常不穩(wěn)定,經(jīng)常導(dǎo)致無法請求成功粪糙,其結(jié)果就是app沒法打開或者直接崩潰强霎,這點讓人很無語,就我個人的觀察來看蓉冈,基本上可以保證每個月都出問題城舞,官方的響應(yīng)也非常慢經(jīng)常一兩天搞不定(要是周六周末就更慘,肯定找不到人-_-)寞酿〖叶幔基本上你喊破喉嚨也沒人理你。
總之伐弹,就我個人的使用經(jīng)驗來看拉馋,appcan對免費版的支持相當(dāng)差(你可以認(rèn)為是沒支持-,-)惨好,至于企業(yè)版煌茴,我沒買,所以不知道是個什么程度日川。
所以如果你做的東西不是什么要緊的東西蔓腐,那么用它就無所謂,如果是打算開發(fā)靠譜的東西逗鸣,建議你繞道phonegap合住,那個更靠譜(我目前也轉(zhuǎn)用phonegap了)
7.我選擇了cordova
cordova 官方文檔:https://cordova.apache.org/docs/en/latest/guide/platforms/ios/
8.環(huán)境搭建:
1)首先安裝node.js:
https://nodejs.org 下載pkg文件運(yùn)行安裝 ( 注意:這里要使用google 下載绰精,我開始用safari瀏覽器下載的特別緩慢 )
終端運(yùn)行 npm -v,如果出現(xiàn)版本號則說明 Node.js 安裝成功
2-1)命令行安裝Cordova CLI
sudo npm install -g cordova
以后如果要更新Cordova:
sudo npm update cordova -g
cordova更新完成后透葛,還需要更新項目(比如更新ios項目):
cordova platform update ios
2-2)安裝inoic:
sudo npm install -g cordova ionic
3)測試下Cordova是否安裝成功
cordova -v
顯示版本號則證明安裝成功
9.創(chuàng)建cordova 項目:
// 先找到目錄位置:
cd ~/Documents
創(chuàng)建工程項目:
cordova create 工程的文件夾名 com.xxx.工程的文件夾名 App的顯示名稱
e.g: cordova create hello com.example.hello HelloWorld
注意: App的顯示名稱 可以在config.xml中改變
創(chuàng)建成功目錄結(jié)構(gòu):
目錄文件夾說明:
conig.xml :cordova的配置文件
hooks/ :存放自定義cordova命令的腳本文件笨使。
platforms/ :各個平臺原生工程代碼,會在build時被覆蓋勿修改
plugins/ :插件目錄(主要是提供各個平臺的原生API)
www/ :用H5編寫的源代碼目錄僚害,build時會被放入各個平臺的assets\www目錄硫椰。
www/index.html :App入口html文件
10.添加iOS平臺支持:
-
terminal中進(jìn)入項目:
cd xx/x/xx/x
2)添加iOS平臺文件cordova platform add ios
- 可以打開Xcode查看了
一般都是編輯外面的www文件夾里的頁面,而不是里面Staging的www文件夾萨蚕。然后運(yùn)行如下命令重新 build 工程靶草,這些頁面就會自動覆蓋到各個平臺下對應(yīng)目錄下。
cordova build
然后在Xcode中編譯運(yùn)行岳遥。