问题描述
我的情况非常简单:我使用下一个函数
private func launchActivity(_ id: String,title: String,invocPhrase: String) {
userActivity = NSUserActivity(activityType: "Open_bank")
userActivity?.title = title
userActivity?.userInfo = ["id": id]
if #available(iOS 12.0,*) {
userActivity?.suggestedInvocationPhrase = invocPhrase
userActivity?.isEligibleForPrediction = true
userActivity?.persistentIdentifier = id
} else {
//Can't actually invoke this block
}
}
创建一个特定的userActivity,然后将其添加到Siri,以便invocPhrase
可以调用它。这是执行此操作的功能。
func presentAddOpenBankToSiriVC() {
guard let userActivity = self.userActivity else { return }
if #available(iOS 12.0,*) {
let shortcut = INShortcut(userActivity: userActivity)
let viewController = INUIAddVoiceShortcutViewController(shortcut: shortcut)
viewController.modalPresentationStyle = .formSheet
viewController.delegate = self
present(viewController,animated: true,completion: nil)
} else {
//Can't actually invoke this block
}
}
稍后我尝试删除它(以及所有其他用户活动)
NSUserActivity.deleteAllSavedUserActivities {}
与Apple文档中的内容相反,它不会删除任何用户活动 https://developer.apple.com/documentation/sirikit/deleting_donated_shortcuts
实际上,起初我尝试过一种方法
deleteSavedUserActivities(withPersistentIdentifiers:completionHandler:)
使用userActivity的persistentIdentifier,但显然也无济于事。
我不知道为什么它拒绝让步,但是会感谢您的帮助或提示
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)