我需要在打开时推送一个viewcontroller
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(nonnull NSDictionary<NSString *,id> *)options
调用方法。
当app在后台时,它工作正常。但是当我杀死了应用程序并点击链接时,它就没有被推送。我在didFinishLaunch
方法中设置了标签栏控制器。会在openURL
之后调用完成吗?
答案 0 :(得分:0)
如果您的应用程序未运行,您将使用网址Launch Option Key拨打application:didFinishLaunchingWithOptions:
方法。
要处理它,请检查启动选项中的UIApplicationLaunchOptionsURLKey
键并提取URL:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if (launchOptions[UIApplicationLaunchOptionsURLKey] != nil) {
// Opened from an URL
}
}
答案 1 :(得分:0)
我明白了。这是因为applink启动应用程序时会调用appdelegate didFinishLaunch
方法。我正在使用FBSDK并返回
return [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
如果我的自定义方案,这将返回false。所以我通过检查我的URL方案明确地调用它。
if ([launchURL.scheme isEqualToString:@"urlScheme"]) {
[self application:application
openURL:launchURL
sourceApplication:sourceApplication
annotation:@""];
}
在返回didFinishLaunch之前放上上面的代码解决了我的问题。