如果app在后台运行,则不会调用continueUserActivity方法

问题描述 投票:0回答:1

我正在开发一个用Objective C编写的大项目,并坚持使用iOS Universal Link流程。如果应用程序没有在后台运行,Universal Link工作正常,称为continueUserActivity方法并按预期执行。但是如果应用程序在后台运行,请点击Universal Link,它会打开应用程序并调用willContinueUserActivityWithType方法,但不会调用continueUserActivity方法。

我不知道为什么会这样。我在另一个项目中测试Universal Links,一切正常,工作正常。但是在我的主项目中,不会调用continueUserActivity。

iOS版本11.4

ios objective-c deep-linking ios-universal-links
1个回答
0
投票

问题是NSUserActivityUIApplication对象变为零。这就是为什么thecontinueUserActivity方法没有被调用。要解决问题,请初始化NSUserActivity并在willContinueUserActivityWithType方法中设置其委托。

- (BOOL)application:(UIApplication *)application willContinueUserActivityWithType:(nonnull NSString *)userActivityType {

application.userActivity = [[NSUserActivity alloc] initWithActivityType:userActivityType];
application.delegate = self;

return true;

}

我不知道它是否是一种正确的方式,但它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.