试图强制Handoff功能在iOS 9设备上使用iPhone 5和iPad Air,并且遇到与iOS9相关的问题 - 无法在iOS 8上查看,因为我没有设备这个系统。Handoff不适用于iOS 9设备
问题:
- 我第一次打开设备上的应用程序时,在创建用户活动
- 在我的锁屏幕上看到的第二设备主屏幕,有与我的应用程序 一些活动
- 我正在打开此应用程序,
application:continueUserActivity:restorationHandler:
未在此设备上调用,因此我无法向用户显示第一台设备上显示的内容。
您可以在github上浏览整个项目:https://github.com/tomkowz/Quotes
实现细节:
我已经更新目标的plist文件,并添加NSUserActivityTypes
。
<key>NSUserActivityTypes</key>
<array>
<string>com.tomaszszulc.Quotes.quotesList</string>
<string>com.tomaszszulc.Quotes.browseQuote</string>
</array>
接下来,我已经创建枚举这些声明类型:
enum ActivityType: String {
case BrowseQuote = "com.tomaszszulc.Quotes.browseQuote"
case QuotesList = "com.tomaszszulc.Quotes.quotesList"
}
当用户是我开始NSUserActivity
在主屏幕上。
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
quotes = Quote.findAll(CoreDataStack.sharedInstance().mainContext)
tableView.reloadData()
startUserActivity()
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
userActivity?.invalidate()
}
func startUserActivity() {
let activity = NSUserActivity(activityType: ActivityType.QuotesList.rawValue)
activity.title = "Viewing Quotes List"
userActivity = activity
userActivity?.becomeCurrent()
}
当用户转到所选项目的详细信息时,将激活第二种活动。这里是意见流量:
UINavigationController -> (root) QuotesListViewController -> (push) QuoteDetailsViewController
下面是代码为QuoteDetailsViewController
创建用户活动:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
userActivity = viewModel.userActivity // (viewModel) quote.userActivity
userActivity?.becomeCurrent()
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
userActivity?.invalidate()
}
而且viewModel.userActivity
电话:
extension Quote {
@available(iOS 8.0, *)
var userActivity: NSUserActivity {
let activity = NSUserActivity(activityType: ActivityType.BrowseQuote.rawValue)
activity.title = "Reading " + self.author + " quote"
activity.userInfo = [QuoteUserActivityKey.Identifier.rawValue: self.identifier]
// Core Spotlight support
if #available(iOS 9.0, *) {
activity.contentAttributeSet = self.searchableItemAttributeSet()
activity.keywords = Set([self.author])
activity.eligibleForSearch = true
activity.eligibleForHandoff = true
}
return activity
}
}
预先感谢您!
我已经提交了一个错误:http://www.openradar.me/radar?id=5534110390943744 –