我在我的 iOS 和 Mac 应用程序中采用 Handoff。iOS -> iOS 和 iOS -> Mac 运行完美!这很棒。但是,Mac -> iOS 永远不会工作。我已经在不同的机器上测试了 El Capitan 和 Sierra。如果我添加一个网页URL 作为后备,iOS 中的 Safari 会拾取该活动,但不会显示本机 iOS 应用程序。我在 Mac 应用程序中使用这段代码
class ViewController: NSViewController {
override func viewDidAppear() {
super.viewDidAppear()
self.startUserActivity()
}
func startUserActivity() {
let userActivity = NSUserActivity(activityType: "net.myapp.myactivitytype")
userActivity.isEligibleForHandoff = true
userActivity.isEligibleForSearch = false
userActivity.isEligibleForPublicIndexing = false
userActivity.title = "Handoff test"
userActivity.userInfo = ["key": "value"]
userActivity.requiredUserInfoKeys = Set<String>(arrayLiteral: "key")
userActivity.webpageURL = URL(string: "https://myapp.net/myurl") // I can pick this up in mobile safari
self.userActivity = userActivity
}
override func updateUserActivityState(_ userActivity: NSUserActivity) {
userActivity.addUserInfoEntries(from: ["key":"Updated value"])
super.updateUserActivityState(userActivity)
}
}
在 iOS 端,我已经使用 applinks:myapp.net 处理了通用链接,并尝试添加 activitycontinuation:myapp.net (以及在 apple-app-site-association 文件上的正确配置。这使我的本机应用程序获得了相应的url 来自 Mac 的 Safari,但 Native Mac 应用程序仍然无法切换到 Native iOS 应用程序。我没有想法,有人知道为什么会发生这种情况吗?在 iOS 上,我使用的是 10.2。顺便说一句,我不能t 让 Handoff 在 iOS 9 上完全可用。
最好的问候拉斐尔