当你已经收到离线推送,此时App已经被杀。此时点击通知栏,希望App启动后跳转到指定页面,改如何处理呢
1、需要注意,上面的情况,是不会走以下方法的
收到远程推送的方法
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void)
这边只能处理App未被Kill,点击通知栏,取值跳相关页面
2、正确做法是在以下App启动方法中,根据remoteNotification取到相关信息(userInfo)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool
根据UIApplication.LaunchOptionsKey.remoteNotification取到内容,再进行相关处理
if let userInfo = launchOptions?[UIApplication.LaunchOptionsKey.remoteNotification] as? [AnyHashable: Any] {
//根据userInfo里相关信息,做逻辑跳转
//如果未完成跳转,可尝试延迟2秒执行跳转方法(待初始化完成后执行)
if let content = userInfo["data"] as? String {
// router
}
}