这是我的应用场景:当用户滑动通知时,我将通过 URL 启动其他应用。因此,当通知到达时,它基本上会启动其他一些应用程序。
目前处理刷卡通知场景,当
- (BOOL)application:(UIApplication *)app didFinishLaunchingWithOptions:(NSDictionary *)
方法被调用,在这个方法中,我调用processNotification:
方法,其中包含:
...
[[UIApplication sharedApplication] openURL:url];
...
- 如果在应用程序处于活动状态时收到推送,
url
则可以很好地打开。 - 如果通过滑动或点击通知收到推送,
url
则在后台打开,但当前查看的应用程序是我的应用程序。例如,如果 myurl
istel:123-456-7890
,iOS 启动呼叫(您可以听到声音)但活动应用程序不是Phone.app
,它是我的应用程序。
这对我来说似乎很奇怪。但是,如果我等待 UI 加载,然后调用processNotification:
,它会Phone.app
正确显示窗口。(平台中的错误?因为调用发生但我的用户界面在顶部。)
我需要一种方法来延迟执行此processNotification:
调用(可能通过操作队列),直到加载视图控制器。否则,我的应用程序将保持在顶部,并且 URL 在后台打开。