一,使用Newsstand Kit API

苹果公司在iOS5之后提供了电子报刊杂志开发API-Newsstand Kit.Newsstand Kit 只有3个类;NKLibrary,NKIssue和NKAssetDownload.

NKAssetDownload类封装了要下载的报刊杂志资源类。这些资源包括HTML文件,文本文件,图片文件,PDF文件和多媒体文件等,或者是这些资源文件之后的ZIP文件。

IssueService类,是我们自定义的类,它主要处理杂志封面下载,杂志内容资源下载和从发行商服务器下载元数据等处理。

下载这些杂志有两种方式,一种是在这个画面点击“下载”按钮,直接主动下载,另一种是在后台接收到发行商推送通知后被动触发下载。

二,后台资源下载。

后台下载是Newsstand应用的最大亮点,应用中在不要需要用户干预的情况下,自动在后台下载,发行商需要借助于推送通知,把新版本的发布信息告知应用,应用就会在后台下载这些报刊杂志内容。

很多人会担心是否耗费更多的流量费用?苹果公司为此考虑得很多,后台下载必须在设备连接WiFi之后才能下载,每天只能下载一次。此外,开发者也可以将下载的资源文件压缩成ZIP包,下载本地后在解压缩。这些都可以保证减少网络流量。

三,断点续传。

如果应用正在下载资源文件时,应用被终止,那会出现什么情况呢?苹果公司早就考虑到了,我们不需要自己实现断点续传具体实现,iOS会记录下这些没有下载完成文件,开发人员工作变得简单了。

四,读取杂志内容。

iOS通过QuickLook框架的QLPreviewController视图控制器直接打开PDF,文本文件等。它的呈现方式有二种,一种是把QLPreviewController放入到UINavigationController中以导师航模式呈现;另一种是使用presendModalViewController:animated:方法采用模态视图呈现。

参考资料:《iOS网络编程与云端应用-最佳实践》

【读书笔记】iOS-报刊杂志-Newsstand应用编程的更多相关文章

  1. 《Data-Intensive Text Processing with mapReduce》读书笔记之二:mapreduce编程、框架及运行

    搜狐视频的屌丝男士第二季大结局了,惊现波多野老师,怀揣着无比鸡冻的心情啊,可惜随着剧情的推进发展,并没有出现期待中的屌丝奇遇,大鹏还是没敢冲破尺度的界线.想百度些种子吧,又不想让电脑留下污点证据,要知 ...

  2. 《Java并发编程的艺术》读书笔记:一、并发编程的目的与挑战

    发现自己有很多读书笔记了,但是一直都是自己闷头背,没有输出,突然想起还有博客圆这么个好平台给我留着位置,可不能荒废了. 此文读的书是<Jvava并发编程的艺术>,方腾飞等著,非常经典的一本 ...

  3. 《learning hard C#学习笔记》读书笔记(20)异步编程

      20.1 什么是异步编程异步编程就是把耗时的操作放进一个单独的线程中进行处理. 20.2 同步方式存在的问题   namespace 异步编程 { public partial class For ...

  4. 《python核心编程》读书笔记--第16章 网络编程

    在进行网络编程之前,先对网络以及互联网协议做一个了解. 推荐阮一峰的博客:(感谢) http://www.ruanyifeng.com/blog/2012/05/internet_protocol_s ...

  5. javascript 数据结构和算法读书笔记 > 第一章 javascript的编程环境和模型

    1.变量的声明和初始化 必须使用关键字 var,后跟变量名,后面还可以跟一个赋值表达式. var name; var age = 5; var str = 'hello'; var flg = fal ...

  6. [C#] 《Concurrency in C# Cookbook》读书笔记(一)- 并发编程概述

    并发编程概述 前言 我们经常在耳边听说一些关于高性能.并发和并行等名词,并且很多人都对并发编程有一些误解. 误解 1:并发就是多线程? 答:多线程只不过是并发编程的其中一种形式而已.并发编程的种类很多 ...

  7. 《C++ Primer Plus》读书笔记之五—函数-C++的编程模块

    函数-C++的编程模块   1.C++对于返回值的类型有一定的限制:不能是数组,但可以是其他任何类型——整数.浮点数.指针,甚至可以是结构和对象(有趣的是,虽然C++函数不能直接返回数组,但可以将数组 ...

  8. 《python核心编程》读书笔记--第18章 多线程编程

    18.1引言 在多线程(multithreaded,MT)出现之前,电脑程序的运行由一个执行序列组成.多线程对某些任务来说是最理想的.这些任务有以下特点:它们本质上就是异步的,需要多个并发事务,各个事 ...

  9. [读书笔记]iOS 7 UI设计 对比度

    好久没写随笔了,最近在读<iOS 7 byTutorials>,很不错,推荐给大家. 每一个好的程序员也都是一个设计师,不懂设计的程序员不是好的CTO.哈哈,开个小玩笑. iOS 7设计的 ...

  10. 【Todo】【读书笔记】Linux高性能服务器编程

    在读 /Users/baidu/Documents/Data/Interview/服务器-检索端/<Linux高性能服务器编程.pdf> 其实之前读过,要面试了,需要温习. P260 So ...

随机推荐

  1. flask框架--模板

    今天又是一个精彩又无聊的一天,不过随着知识的缓慢的增加我的内心也充满了干劲,虽然前进的有些缓慢 但我不会这么容易放弃的,一定要相信自己,不要灰心 好了 ~ 不说废话了 , 我自己听的都有些受不了了 . ...

  2. 【liferay】6、关于liferay中使用requestMapping映射地址提交表单

    1.接着上一篇博客,从新在定义一下页面 <%@ page contentType="text/html; charset=utf-8" language="java ...

  3. POJ 2725

    #include <iostream> #include <string> #include <algorithm> #define MAXN 400005 usi ...

  4. POJ 2665

    #include<iostream> #include<stdio.h> using namespace std; int main() { //freopen("a ...

  5. JobScheduler android任务调度处理组件(类似QuartZ)

    JobScheduler是Android L(API21)新增的特性,用于定义满足某些条件下(电量,网络,时间,屏幕熄/亮 ,设备是否空闲 等)执行的任务.它的宗旨是把一些不是特别紧急的任务放到更合适 ...

  6. SpringSecurity学习之快速上手

    互联网项目中,安全与权限控制是不可回避的问题,为了解决这一些列问题,许多安全框架应运而生了.这些框架旨在帮我们解决公用的安全问题,让我们的程序更加健壮,从而让程序员全身心投入到业务开发当中.那么Spr ...

  7. 数据库设计 Step by Step (2)——数据库生命周期

    引言:数据库设计 Step by Step (1)得到这么多朋友的关注着实出乎了我的意外.这也坚定了我把这一系列的博文写好的决心.近来工作上的事务比较繁重,加之我期望这个系列的文章能尽可能的系统.完整 ...

  8. docker cgroup技术之cpu和cpuset

    在centos7的/sys/fs/cgroup下面可以看到与cpu相关的有cpu,cpuacct和cpuset 3个subsystem.cpu用于对cpu使用率的划分:cpuset用于设置cpu的亲和 ...

  9. 走进javascript——被忽视的DOM方法和属性

    isEqualNode() isEqualNode方法可以用来判断两个DOM节点是否相同,给我的第一感觉是没用,因为两个DOM的比较很容易让人想成是字符串的比较,心想直接用两个等号不就可以了吗,但马上 ...

  10. MySql主从同步和延迟同步

    MySql同步与延迟同步 Mysql同步 一 Mysql主服务器上操作 1 开启服务器上的log_bin功能 # vim/etc/my.cnf 增加一下两行 log_bin=mysql-bin ser ...