不要实施applicationDidFinishLaunching:
. 改为使用application:didFinishLaunchingWithOptions:
。同样不要使用application:handleOpenURL:
,application:openURL:sourceApplication:annotation:
而是使用。
如果您从 URL 启动,则选项字典将包含 UIApplicationLaunchOptionsURLKey 键,并且该键的值将是 URL。
但是,如果您的应用程序已经在运行但在后台,并且用户调用了重新打开您的应用程序的 URL,您将收到一条application:openURL:sourceApplication:annotation:
消息。您真正需要做的是实现一个 handleURL 方法,然后从两者调用该application:didFinishLaunchingWithOptions:
方法application:openURL:sourceApplication:annotation:
编辑:
请注意,在 iOS 9 中,Apple 弃用application:openURL:sourceApplication:annotation:
并添加了新方法application:openURL:options:
。
如果您的应用仅适用于 iOS 9 及更高版本,则应实施新application:openURL:options:
方法。如果你需要支持 iOS 9和更早的版本,你可能应该同时实现application:openURL:sourceApplication:annotation:
新的 iOS 9 方法application:openURL:options:
。操作系统将为您正在运行的操作系统版本调用正确的版本。然后,我将创建一个两者都调用的通用方法。这样你就可以从两个操作系统版本中调用,但你处理打开 URL 的代码只在一个地方。