我正在开发一个用Objective C编写的大项目,并坚持使用iOS Universal Link流程。如果应用程序没有在后台运行,Universal Link工作正常,称为continueUserActivity方法并按预期执行。但是如果应用程序在后台运行,请点击Universal Link,它会打开应用程序并调用willContinueUserActivityWithType方法,但不会调用continueUserActivity方法。
我不知道为什么会这样。我在另一个项目中测试Universal Links,一切正常,工作正常。但是在我的主项目中,不会调用continueUserActivity。
iOS版本11.4
问题是NSUserActivity
的UIApplication
对象变为零。这就是为什么thecontinueUserActivity
方法没有被调用。要解决问题,请初始化NSUserActivity
并在willContinueUserActivityWithType
方法中设置其委托。
- (BOOL)application:(UIApplication *)application willContinueUserActivityWithType:(nonnull NSString *)userActivityType {
application.userActivity = [[NSUserActivity alloc] initWithActivityType:userActivityType];
application.delegate = self;
return true;
}
我不知道它是否是一种正确的方式,但它对我有用。