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