关于iOS 13中AppDelegate的变化,请参考这篇文章:Xcode11新变化:SceneDelegate
在Xcode11创建的项目中,-[AppDelegate application:openURL:options:]
方法是不会被回调的,我参考上面的那篇文章,找到了两个解决办法:
解决办法一
可以在#import "SceneDelegate.m"
中实现
- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts{
}
这个方法被回调的操作和-[AppDelegate application:openURL:options:]
是一致的。
解决办法二
这个也是最简单粗暴的方法,删除和SceneDelegate.{h,m}
所有相关的东西,包括info.plist
下的Application Scene Manifest
和AppDelegate.m
中的
- (UISceneConfiguration *)application:(UIApplication *)application configurationForConnectingSceneSession:(UISceneSession *)connectingSceneSession options:(UISceneConnectionOptions *)options {
return [[UISceneConfiguration alloc] initWithName:@"Default Configuration" sessionRole:connectingSceneSession.role];
}
- (void)application:(UIApplication *)application didDiscardSceneSessions:(NSSet<UISceneSession *> *)sceneSessions {
}
然后再在AppDelegate
中添加window
属性并实现。