一,iOS端開發(fā)。
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、宿遷網(wǎng)絡(luò)推廣、微信平臺(tái)小程序開發(fā)、宿遷網(wǎng)絡(luò)營銷、宿遷企業(yè)策劃、宿遷品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供宿遷建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
如果購買成功,我們需要將憑證發(fā)送到服務(wù)器上進(jìn)行驗(yàn)證。考慮到網(wǎng)絡(luò)異常情況,iOS端的發(fā)送憑證操作應(yīng)該可以持久化,如果程序退出,崩潰或網(wǎng)絡(luò)異常,可以恢復(fù)重試。
二,服務(wù)器端開發(fā)。
服務(wù)器后臺(tái)的工作比較簡單,分為4步:
1,接收iOS端發(fā)來的購買憑證。
2,判斷憑證是否已經(jīng)存在,是否驗(yàn)證過,然后,存儲(chǔ)該憑證。
3,將該憑證發(fā)送到蘋果的服務(wù)器驗(yàn)證,并將驗(yàn)證結(jié)果返回給客戶端。
4,如果需要,修改用戶相應(yīng)的會(huì)員權(quán)限。
考慮到網(wǎng)絡(luò)異常的情況,服務(wù)器的驗(yàn)證應(yīng)該是一個(gè)可恢復(fù)的列隊(duì),如果失敗了,應(yīng)該進(jìn)行重試。
程序退到后臺(tái),并不會(huì)一直運(yùn)行。在10分鐘后蘋果會(huì)自動(dòng)結(jié)束這個(gè)程序。但在10分鐘內(nèi)還是可以一直向服務(wù)器發(fā)送請(qǐng)求的。退到后臺(tái)在appdelegate中有一個(gè)uiapplication的中國方法,可以檢測(cè)到程序已退到后臺(tái)的動(dòng)作,這時(shí)可以重新創(chuàng)建一個(gè)線程去請(qǐng)求服務(wù)器
iOS是由蘋果公司為iPhone開發(fā)的操作系統(tǒng)。它主要是給iPhone、iPod touch以及iPad使用。就像其基于的Mac OS X操作系統(tǒng)一樣,它也是以Darwin為基礎(chǔ)的。原本這個(gè)系統(tǒng)名為iPhone OS,直到2010年6月7日WWDC大會(huì)上宣布改名為iOS。iOS的系統(tǒng)架構(gòu)分為四個(gè)層次:核心操作系統(tǒng)層,核心服務(wù)層,媒體層,可輕觸層
iOS 7中,實(shí)際上APP擁有四種后臺(tái)模式,無論是哪一種后臺(tái)機(jī)制,均需要利用蘋果給予的相應(yīng)后臺(tái)接口實(shí)現(xiàn)。新系統(tǒng)中,開發(fā)者可以靈活利用多種后臺(tái)接口(API)實(shí)現(xiàn)更加智能的應(yīng)用操作。
無后臺(tái)僅推送
第一種后臺(tái)方式為傳統(tǒng)的無后臺(tái)操作,僅有蘋果推送機(jī)制,這種方式出現(xiàn)在iOS 3.x以下的大部分系統(tǒng)版本上。這個(gè)方式下,應(yīng)用在按下Home鍵后即會(huì)關(guān)閉退出,其數(shù)據(jù)通過蘋果搭建的推送服務(wù)器傳輸,并不需要應(yīng)用后臺(tái)運(yùn)行。這種方式不太好的原因在于,每次推出后,重新進(jìn)入均需要重新加載,雖然推送能夠統(tǒng)一解決數(shù)據(jù)和信息的傳輸,但遇到需要頻繁進(jìn)入應(yīng)用(如聊天APP)的時(shí)候便會(huì)顯得體驗(yàn)不好。墓碑式
第二種方式為墓碑式的后臺(tái)機(jī)制,這在iOS 4后被大量采用,也就是人們所說的偽多任務(wù)。這方式相比較第一種改進(jìn)的地方在于,按下Home鍵至主界面后,應(yīng)用隨即進(jìn)入后臺(tái),但其被凍結(jié),并不能進(jìn)行任何操作。
智能調(diào)度后臺(tái)
第三種為系統(tǒng)智能調(diào)度的后臺(tái),iOS 7新增的background fetch,這個(gè)后臺(tái)接口在蘋果WWDC 2013上有提及,其會(huì)根據(jù)用戶行為自動(dòng)調(diào)整達(dá)到效率最優(yōu)的后臺(tái)模式,能夠處理不是很有時(shí)效性的信息獲取。例如一些社交、新聞?lì)惖膽?yīng)用的后臺(tái)信息更新,iOS系統(tǒng)便會(huì)根據(jù)應(yīng)用啟動(dòng)頻率、時(shí)間和當(dāng)前網(wǎng)絡(luò)和電量的狀況來智能分配每個(gè)應(yīng)用的后臺(tái)獲取頻率和啟動(dòng)時(shí)長。
由于擁有該接口的應(yīng)用的數(shù)據(jù)后臺(tái)刷新操作是統(tǒng)一調(diào)度的,因此系統(tǒng)可以在一個(gè)進(jìn)程里面獲得多個(gè)應(yīng)用的數(shù)據(jù),類似統(tǒng)一的推送機(jī)制,這樣就能夠最大限度地省電。不過這個(gè)方式也有一個(gè)缺點(diǎn),那便是開發(fā)者不能設(shè)定數(shù)據(jù)具體什么時(shí)候更新,因此這個(gè)后臺(tái)方式只能應(yīng)用在一些時(shí)效性和敏感度不高的地方。
真后臺(tái)
第四種方式便是真后臺(tái)機(jī)制,但iOS的真后臺(tái)與Android的后臺(tái)機(jī)制是不一樣的,為了兼顧系統(tǒng)體驗(yàn)和統(tǒng)一進(jìn)程管理,iOS在這上面加入了眾多的限制。
差不多這樣,如果還有要理解的繼續(xù)說就好了
我最近也在做后端,Python,Ruby,Node 都用了一下,最后選擇 NodeJS。
在選擇時(shí),Ruby on Rails,Django 第一個(gè)出局,因?yàn)榭紤]到 API 應(yīng)該輕,快。
Python 曾經(jīng)用過 Flask,考慮過 Bottle。不過兩者的 Extensions 的功能都無法需求。
Ruby 的 Sinatra 是最好用的。選擇 Sinatra + Mongoid,一個(gè)星期可以搞出來(我自己的情況)。
現(xiàn)在選擇用 NodeJS 的 ExpressJS + Mongoose 搭配。從 Ruby 轉(zhuǎn)成 Node,主要是因?yàn)榭瓷?NodeJS 的性能。Request per Second 的話,NodeJS 7000 左右,ExpressJS 3000 左右,Sinatra 900 左右,Ruby on Rails 300 左右。
我寫 JavaScript 都是用 CoffeeScript 寫的,所以寫起來就像寫 Ruby 或 Python 一樣,非常 Lisp。
ExpressJS 的開發(fā)也是這些框架里面,最活躍的。
用一套安全的,將來也不會(huì)被禁用的設(shè)備識(shí)別體系,就可以了。其實(shí)TalkingData早在iOS 6發(fā)布的時(shí)候就已經(jīng)開始著手研究相關(guān)解決方案了,不用UDID,不需要提取MAC地址,也不用夸應(yīng)用訪問公共剪切板,更不需要借助Safari Cookie,就可以輕松實(shí)現(xiàn)獨(dú)立設(shè)備的識(shí)別--這套體系就是TIID(TalkingData Independent ID)。目前TIID已經(jīng)可以做到不受IDFA、IDFV影響,始終保持一致,即便是用戶刷機(jī),但只要恢復(fù)數(shù)據(jù),即可保持TIID前后一致。唯一會(huì)導(dǎo)致TIID發(fā)生改變的情況就是用戶徹底重置設(shè)備且放棄恢復(fù)備份的數(shù)據(jù)--對(duì)于一個(gè)iOS用戶來說,這種事件的發(fā)生幾率極小,即便是更換新的設(shè)備,用戶也大多會(huì)選擇從之前的設(shè)備備份數(shù)據(jù)恢復(fù)到新設(shè)備上。