对于这个问题,我用一个视图创建了一个新项目。
我设置了一个网址方案并在视图中添加了一个标签。
代码在这里。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
ViewController *vc = (ViewController *)self.window.rootViewController;
vc.textLabel.text = [NSString stringWithFormat:@"%@\n%@",vc.textLabel.text,url.absoluteString];
return YES;
}
工作正常。
但如果我在app初始化时添加一些耗时的操作, 像这样。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[NSThread sleepForTimeInterval:1];
return YES;
}
然后我通过这些步骤发现了这个问题:
我尝试使用此委托,同样的问题。
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
您可以按主页按钮并多次点击应用程序图标,而openUrl将被多次调用,这取决于耗时操作的成本。
我在iOS 9.3.3和iOS 9.3.1上测试过,遇到同样的问题。
我试过iOS 8.1.2和iOS 10.2没有发现这个问题。
任何想法/建议都非常有用&amp;非常感谢