Safariのリーディングリストは、後で見たいウェブページをリーディングリストに登録することで、ネット環境が無いオフラインでもiPhone内のストレージにキャッシュされて記事の続きを閲覧できる機能
今回はリストに追加する実装を記載
はじめに
Build PhasesのLink Binary With Librariesに
iOS7から追加されたSafari Service Frameworkを追加
iOS7から追加されたSafari Service Frameworkを追加
実装
import SafariServices
let title = "my profile site"
let url = NSURL(string: "http://manchan.github.io")
// リーディングリストに追加できるかどうかチェック
let isValid = SSReadingList.supportsURL(url)
let list = SSReadingList.defaultReadingList()
var msg:String?
// 追加
if isValid && list.addReadingListItemWithURL(url, title: title, previewText: nil, error: nil){
msg = "追加に成功"
}else{
msg = "追加に失敗"
}
// 確認
UIAlertView(title: "追加test", message: msg, delegate: nil, cancelButtonTitle: "OK").show()
用例
AppleWatchからニュースの記事見出しだけ見て、親iPhoneのsafariに追加するなどが考えられる実装(Google News, NYTimes)
watchOS1ならopenParentApplicationで送信
watchOS2ならWatch Connectivityで
watchOS1ならopenParentApplicationで送信
watchOS2ならWatch Connectivityで
注意
追加済みのURLとかのチェックはできない、また既出のリストも取得、編集、削除できない
読みだすことができれば、いろいろとできそうなので残念。
オフライン閲覧が可能なので、ストレージにキャッシュが貯まるので膨大にある場合、キャッシュを削除する必要がある
iOS9であれば設定から
のリーディングリストを編集を押して削除
読みだすことができれば、いろいろとできそうなので残念。
オフライン閲覧が可能なので、ストレージにキャッシュが貯まるので膨大にある場合、キャッシュを削除する必要がある
iOS9であれば設定から
一般 > ストレージとiCloudの使用状況 > ストレージを管理 > Safari
のリーディングリストを編集を押して削除
参考
iOS Developer Library > Safari Services Framework Reference SSReadingList Class Reference
https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Reference/SSReadingList_Ref/index.html#//apple_ref/occ/cl/SSReadingList
https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Reference/SSReadingList_Ref/index.html#//apple_ref/occ/cl/SSReadingList