標籤:des http io ar os 使用 sp div on
本文轉載至 http://mobile.51cto.com/iphone-423385.htm
系統提供NewsstandKit.framework來支援newsstand類型的程式,就是在sprint board上看到在書架中的程式。提供有NKLibrary, NKIssue和NKAssetDownload的類。
AD:2014WOT全球軟體技術峰會北京站 課程視頻發布
1.系統提供NewsstandKit.framework來支援newsstand類型的程式,就是在sprint board上看到在書架中的程式。提供有NKLibrary, NKIssue和NKAssetDownload的類。其中NKLibrary用來管理Newsstand的內容(比如,當前閱讀的issue,當前所有 的issue等);NKIssue用來表示一期刊物,您可以將刊物的URL,封裝成NSURLRequest,set給NKIssue的對象。
NKIssue還可以很方便的管理刊物的狀態(比如None, Downloading-下載中,Available-可用)。NKAssetDownload,可用於刊物的下載。它的 delegate符合NSURLConnectionDownloadDelegate的協議,這個協議中有三個方法:connection:didWriteData:totalBytesWritten:expectedTotalBytes:這個方法可以用來做 進度管理。
connectionDidResumeDownloading:totalBytesWritten:expectedTotalBytes:方法可以 用來做續傳。
connectionDidFinishDownloading:destinationURL:方法表明下載已完成,可以更新介面的 Issue狀態。
NewsstandKit是屬於系統層級的,因此在app切換到後台或退出的時候,也會由系統選擇繼續下載。
如果使用ASIHttpRequest來下載的話也是沒有問題的,但是沒有後台下載,issue狀態管理也需要自己來做。
2. 後台下載只能使用Newsstand Kit的framework實現。關鍵是自動下載。Newsstand類型的app可由push notification來觸發下載流程。前提是註冊push功能的時候,加上Newsstand的key。
像正常的push notification一樣,app在前台,後台,或退出狀態下都可以收到。前台的很簡單,在 didReceiveRemoteNotification的方法中,彈一個alert,問使用者是否需要下載;或者直接下載都可以(我之前的做法是會將要 下載的issue的資訊封裝到push notification的message body中)。如果ap是退出狀態下的話,收到newsstand的push notification,app會直接在後台啟動(這個你是看不到的),然後會走didFinishLaunchingWithOptions的方 法,option會帶入參數,您可以通過它擷取資訊。然後就可以啟動下載。
iOS開發之NewsstandKit.framework的使用