天天品尝iOS7甜点 :: Day 8 :: Reading list with SafariServices

这篇文章是天天品尝iOS7甜点系列的一部分,你可以查看完整的系列目录:天天品尝iOS7甜点


Introduction - 介绍

阅读列表的概念很简单-通过在你的浏览器中你看到一篇文章,但是没有时间去阅读它。阅读列表就是一种暂时的数钱页面,可以让你稍后阅读文章,在App store中有各种各样的第三方的软件,但是在iOS7中,Safari中的SafariServices开发了一个对外的API接口.

本章的实例程序能够在github上面进行访问,访问地址:github.com/ShinobiControls/iOS7-day-by-day

Usage - 使用

使用Safari的阅读列表是比较简单的-在API中包含了3个方法。一个阅读列表元素由一个URL,一个标题和一个描述信息组成。URL通常是http或者https格式的,你可以用supportsURL:来检测URL的合法性:

1
2
3
if ([SSReadingList supportsURL:[NSURL urlFromString:@"http://sample/article/url"]]) {
NSLog(@"URL is supported");
}

一旦你已经检查了URL是有效的,你就可以添加到这个默认的阅读列表中,调用添加方法:

1
2
3
4
5
6
7
8
9
SSReadingList *readingList = [SSReadingList defaultReadingList];
NSError *error;
[readingList addReadingListItemWithURL:[NSURL urlFromString:@"http://sample/article/url"] title:@"Item Title" previewText:@"Vrief preview text" error:&error];

if (error) {
NSLog(@"There was a problem adding to a reading list");
}else {
NSLog(@"Successfully added to reading list");
}

就只有这么的easy,打开Safaris的阅读列表,你就可以看到下图所示:

Sample project - 简单示例

构建一个RSS阅读器,下拉的方式刷新文章列表,然后把它们显示在表格中,在详情的页面下面有一个Read Later的按钮,可以把他们添加到Safari的阅读列表中。

对于这边文章来说,我们最感兴趣的就是点击Read Later按钮后的操作:

1
2
3
4
5
6
7
8
9
10
11
12
- (IBAction)readLaterButtonPressed:(id)sender {
if ([SSReadingList supportsURL:[self.detailItem url]]) {
SSReadingList *readingList = [SSReadingList defaultReadingList];
NSError *error;
[readingList addReadingListItemWithURL:[self.detailItem url] title:[self.detailItem title] previewText:[self.detailItem description] error:&error];
if(error) {
NSLog(@"There was a problem adding to a reading list");
} else {
NSLog(@"Successfully added to reading list");
}
}
}

应用程序的目的并不是展示如何构建一个RSS解析器,以及这样的RSS是雅虎上面的JSON数据。

Conclusion - 总结

今天算是一个简短的文章,展现iOS7中一个极少关注的特性。这并不是开创性的,但是如果你的应用程序需要把加入到Safari阅读列表中,本文就能够起作用了,10分钟让你轻轻松松搞定.

本文翻译自:iOS7 Day-by-Day :: Day 8 :: Reading list with SafariServices

文章目录
  1. 1. Introduction - 介绍
  2. 2. Usage - 使用
  3. 3. Sample project - 简单示例
  4. 4. Conclusion - 总结
,