Ios 从Siri启动应用程序的原因”;NSUserActivity有一个附加的交互,但它未被处理;
我可以从Siri成功启动我的应用程序,但我在调试器中收到了NSUserActivity消息。我不记得在以前的版本中看到过这个信息,但也许我没有注意到。我错过了什么?有什么东西是我应该从堆里弹出来的吗?设置一些标志 (我只能在设备上启动应用程序,不能在模拟器中启动,但这是另一天的问题。Siri告诉我有问题,请再试一次。)Ios 从Siri启动应用程序的原因”;NSUserActivity有一个附加的交互,但它未被处理;,ios,swift,siri,nsuseractivity,Ios,Swift,Siri,Nsuseractivity,我可以从Siri成功启动我的应用程序,但我在调试器中收到了NSUserActivity消息。我不记得在以前的版本中看到过这个信息,但也许我没有注意到。我错过了什么?有什么东西是我应该从堆里弹出来的吗?设置一些标志 (我只能在设备上启动应用程序,不能在模拟器中启动,但这是另一天的问题。Siri告诉我有问题,请再试一次。) 出现此消息是因为您未处理userActivity的交互。 简单处理程序如下所示: func应用程序(application:UIApplication,continue user
出现此消息是因为您未处理userActivity的交互。 简单处理程序如下所示:
func应用程序(application:UIApplication,continue userActivity:NSUserActivity,restorationHandler:@escaping([UIUserActivityRestoring]?)->Void)->Bool{
userActivity.interaction?捐赠(完成:{中出错
如果let error=error{
打印(“与错误的交互:\(error.localizedDescription)”)
}否则{
打印(“捐赠互动成功”)
}
})
返回真值
}
因为您没有处理userActivity的交互,所以出现了一条消息。
简单处理程序如下所示:
func应用程序(application:UIApplication,continue userActivity:NSUserActivity,restorationHandler:@escaping([UIUserActivityRestoring]?)->Void)->Bool{
userActivity.interaction?捐赠(完成:{中出错
如果let error=error{
打印(“与错误的交互:\(error.localizedDescription)”)
}否则{
打印(“捐赠互动成功”)
}
})
返回真值
}
您有什么解决方案吗?我在xamarin.iOS中也面临同样的问题app@Divyesh_08对不起,我有一个月没有时间讨论这个问题了。不,我还没弄明白。你有什么解决办法吗?我在xamarin.iOS中也面临同样的问题app@Divyesh_08对不起,我有一个月没有时间讨论这个问题了。不,我还没有弄明白。虽然这段代码可能会回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,仅代码的答案没有用处。这消除了未处理的交互错误,但现在我得到了以下错误:[Intents]-[NSUserActivity(IntentsAdditions)interaction]无法取消归档交互PayloadData,错误为:error Domain=nscoCaerorDomain Code=4865“请求的密钥:'root'”UserInfo={NSDebugDescription=requested key:'root'}虽然这段代码可以回答这个问题,但最好包含一些上下文,解释它是如何工作的以及何时使用它。从长远来看,仅代码回答是没有用的。这消除了未经处理的交互错误,但现在我得到了这个:[Intents]-[NSUserActivity(IntentsAdditions)交互]无法取消对interactionPayloadData的存档,错误为:错误域=NSCOCAERRORDOMAIN代码=4865“请求的密钥:'root'”用户信息={NSDEBUGSCRIPTION=请求的密钥:'root'}
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
if userActivity.activityType != "com.mydomain.myactivity" {
os_log("The app was called with an invalid activityType")
return false
}
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let tabBarController = self.window!.rootViewController as! UITabBarController
tabBarController.tabBar.barTintColor = UIColor(red: 184.0/255.0, green: 64.0/255.0, blue: 37.0/255.0, alpha: 0.2)
guard let tabVCs = tabBarController.viewControllers else {
os_log("restorationHandler: Can't get tabVCs")
return false
}
guard let myTargetViewController = mainStoryboard.instantiateViewController(withIdentifier: "myTargetViewController") as? MyTargetViewController else {
os_log("restorationHandler: Can't get myTargetViewController from storyboard")
return false
}
guard let tab1NavViewController = tabVCs[0] as? UINavigationController else {
os_log("restorationHandler: Can't get tab1NavViewController from tabVCs")
return false
}
tabBarController.selectedIndex = 0
myTargetViewController.calledFromShortcut = true
tab1NavViewController.pushViewController(myTargetViewController, animated: true)
return true
}