问题描述
我们正在AppDelegate中处理didReceiveRemoveNotification
:
func application(_ application: UIApplication,didReceiveRemoteNotification userInfo: [AnyHashable : Any],fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
switch application.applicationState {
case .inactive:
//Parse userInfo,handle deep link and force navigation to a specific view
case .background:
break
case .active:
break
}
}
基本上,当用户从推送通知中打开应用程序时,我们会在此处收到消息,并且由于inactive
案件受到打击,我们可以说他们从后台打开了推送通知。
请注意,如果在收到通知时应用程序处于前台,我们将进入active
情况。在该处理程序中似乎不可能处于background
状态
我们遇到的问题是,如果用户在应用程序处于前台状态时正在拨打电话,则他们的应用程序将进入inactive
状态。当推送通知通过时,即使他们已经打开了我们的应用程序,他们也将被迫导航到另一个视图,这对用户造成了困扰。
我们要描述两个inactive
处理程序方案。
我们正在尝试在用户周围设置标记,以使应用程序显式后台运行,但这似乎不是一个可靠的解决方案,希望我们在UIKit API中缺少某些内容
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)