gpt4 book ai didi

ios - 是否可以从另一个应用程序更改 NSUserActivity 的 userInfo ?

转载 作者:行者123 更新时间:2023-11-29 05:17:15 25 4
gpt4 key购买 nike

我正在尝试使用通用链接从应用程序 A 打开应用程序 B,如下所示:

@IBAction func openButtonPressed(_ sender: Any) {
if let appURL = URL(string: "https://website.com/section/Paris") {
UIApplication.shared.open(appURL) { success in
if success {
print("The URL was delivered successfully.")
} else {
print("The URL failed to open.")
}
}
} else {
print("Invalid URL specified.")
}
}

在 App B 的 AppDelegate -> application continueUserActivityrestorationHandler 方法中,它调用另一个处理 userActivity 的函数。这里检查 NSUserActivity 的 userInfo。它正在检查 NSUserActivity 的 userInfo 属性中的关键 PageName,并根据该值为 Activity 分配类型并相应地路由应用程序。

NSString *page = activity.userInfo[@"PageName"];
if ([page isEqualToString:@"Places"]) {
return UserActivityTypePlaces;
} else {
return UserActivityTypeLink;
}

我想知道是否可以更改或添加键值对到应用程序 A 中的 userInfo,以便应用程序 B 可以将我路由到另一个选项卡。 (在本例中,我希望它打开另一个选项卡并搜索通用链接中的位置字符串)

我已经在 StackOverflow 和 Apple Developer 论坛上检查了与 NSUserActivity 的 userInfo 相关的其他问题,但他们没有在调用应用程序上更改它。(例如在应用程序 A 中)

谢谢

最佳答案

我在应用程序 A 中制作了这些:

 let activity = NSUserActivity(activityType: NSUserActivityTypeBrowsingWeb)
activity.title = "Places"
activity.userInfo = ["Page" : "Places"]
let userInfoSet:Set = ["Page"]
activity.requiredUserInfoKeys = userInfoSet
self.userActivity = activity
self.userActivity?.becomeCurrent()

并添加了 NSUserActivityDelegate 方法:

override func updateUserActivityState(_ activity: NSUserActivity) {
let dict:Dictionary = ["Page":"Places"]
userActivity?.addUserInfoEntries(from: dict)
}

但是 NSUserActivity 对象并不是从一个应用程序转移到另一个应用程序的东西。因此,此更改仅在应用程序 A 内有效。

希望这对其他人也有帮助。

关于ios - 是否可以从另一个应用程序更改 NSUserActivity 的 userInfo ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59067241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com