我正在我的iOS和Mac应用程序中采用Handoff技术。iOS -> iOS 和 iOS -> Mac 都能正常工作!非常棒。 然而,Mac -> iOS 从来没有工作过。我已经在不同的机器上测试了El Capitan和Sierra。如果我添加一个webpageURL作为后备,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文件中进行了正确的配置)。这使得我的本地应用程序能够从Mac的Safari中获取相应的URL,但是本地Mac应用程序仍然无法传递给本地iOS应用程序。
我已经没有更多的想法了,请问有人知道为什么会出现这种情况吗?
在iOS上,我正在使用10.2。顺便说一下,在iOS 9上我根本无法使Handoff工作。
此致 Rafael