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