iOS开发之NewsstandKit.framework的使用

移动开发 iOS
系统提供NewsstandKit.framework来支持newsstand类型的程序,就是在sprint board上看到在书架中的程序。提供有NKLibrary, NKIssue和NKAssetDownload的类。

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会带入参数,您可以通过它获取信息。然后就可以启动下载。

责任编辑:张叶青 来源: 新浪博客
相关推荐

2013-07-25 15:19:23

iOS开发学习Xcode打包framiOS开发

2013-12-17 11:04:10

iOS开发传感器

2012-01-18 13:46:37

ARCiOS

2014-08-04 17:46:15

NavBarTarBar

2014-07-21 14:49:35

iOSUILabel

2014-07-23 13:17:53

iOSUITextField

2009-11-23 19:48:50

ibmdwJava

2011-08-15 15:26:20

iPhone开发CocoaXML

2012-02-20 14:41:30

JavaPlay Framew

2017-02-15 09:25:36

iOS开发MQTT

2011-08-02 11:07:42

iOS开发 UIWebView

2011-08-11 16:50:04

iOSTwitter

2014-10-22 10:46:03

ViewportHTML

2013-07-22 13:48:55

iOS开发ASIHTTPRequ使用Cookie

2014-08-08 10:12:44

IRC

2013-07-25 15:15:26

iOS开发学习iOS全局变量

2013-04-11 16:08:50

iOS开发技巧积累

2013-07-29 04:51:41

iOS开发iOS开发学习file列表查看

2021-02-04 18:04:53

DbContext开源对象

2024-02-23 10:33:34

SpringBean容器
点赞
收藏

51CTO技术栈公众号