iOS開(kāi)發(fā)之NewsstandKit.framework的使用
1.系統(tǒng)提供NewsstandKit.framework來(lái)支持newsstand類(lèi)型的程序,就是在sprint board上看到在書(shū)架中的程序。提供有NKLibrary, NKIssue和NKAssetDownload的類(lèi)。其中NKLibrary用來(lái)管理Newsstand的內(nèi)容(比如,當(dāng)前閱讀的issue,當(dāng)前所有 的issue等);NKIssue用來(lái)表示一期刊物,您可以將刊物的URL,包裝成NSURLRequest,set給NKIssue的對(duì)象。
NKIssue還可以很方便的管理刊物的狀態(tài)(比如None, Downloading-下載中,Available-可用)。NKAssetDownload,可用于刊物的下載。它的 delegate符合NSURLConnectionDownloadDelegate的協(xié)議,這個(gè)協(xié)議中有三個(gè)方法:connection:didWriteData:totalBytesWritten:expectedTotalBytes:這個(gè)方法可以用來(lái)做 進(jìn)度管理。
connectionDidResumeDownloading:totalBytesWritten:expectedTotalBytes:方法可以 用來(lái)做續(xù)傳。
connectionDidFinishDownloading:destinationURL:方法表明下載已完成,可以更新界面的 Issue狀態(tài)。
NewsstandKit是屬于系統(tǒng)級(jí)別的,因此在app切換到后臺(tái)或退出的時(shí)候,也會(huì)由系統(tǒng)選擇繼續(xù)下載。
如果使用ASIHttpRequest來(lái)下載的話也是沒(méi)有問(wèn)題的,但是沒(méi)有后臺(tái)下載,issue狀態(tài)管理也需要自己來(lái)做。
2. 后臺(tái)下載只能使用Newsstand Kit的framework實(shí)現(xiàn)。關(guān)鍵是自動(dòng)下載。Newsstand類(lèi)型的app可由push notification來(lái)觸發(fā)下載流程。前提是注冊(cè)push功能的時(shí)候,加上Newsstand的key。
像正常的push notification一樣,app在前臺(tái),后臺(tái),或退出狀態(tài)下都可以收到。前臺(tái)的很簡(jiǎn)單,在 didReceiveRemoteNotification的方法中,彈一個(gè)alert,問(wèn)用戶是否需要下載;或者直接下載都可以(我之前的做法是會(huì)將要 下載的issue的信息包裝到push notification的message body中)。如果ap是退出狀態(tài)下的話,收到newsstand的push notification,app會(huì)直接在后臺(tái)啟動(dòng)(這個(gè)你是看不到的),然后會(huì)走didFinishLaunchingWithOptions的方 法,option會(huì)帶入?yún)?shù),您可以通過(guò)它獲取信息。然后就可以啟動(dòng)下載。