首页 > 解决方案 > 如果通过触摸推送启动应用程序,有没有办法在等待应用程序的主页面加载完成后运行代码?

问题描述

在我的应用程序上轻触推送以移动屏幕。如果应用程序已经在运行,它运行良好。如果应用程序关闭并且您触摸该应用程序,您将无法接收信息。如果应用程序是通过触摸推送启动的,有没有办法在等待我的应用程序主页完成加载后运行代码?

Appdelegate.swift

func userNotificationCenter(_ center: UNUserNotificationCenter,
                            didReceive response: UNNotificationResponse,
                            withCompletionHandler completionHandler: @escaping () -> Void) {

    let userInfo = response.notification.request.content.userInfo




    Messaging.messaging().appDidReceiveMessage(userInfo)
    // Print message ID.
    if let messageID = userInfo[gcmMessageIDKey] {

    }

    let storyboard = UIStoryboard(name: "Main", bundle: nil)


    Execution code when touching push
    }

Execution code when touching push在加载主页之前执行,并且应用程序终止。执行代码什么时候有办法等待触摸推送?

标签: iosswift

解决方案


如果应用程序是通过触摸推送启动的,有没有办法在等待我的应用程序主页完成加载后运行代码?

自己调用和触发这样didReceive的委托方法是不可能的,或者说不理想。

你可以做的是保存数据messageID,或者更好地保存userInfo到你的本地,比如UserDefaults. 然后在加载主屏幕或主屏幕或根屏幕时自行检查。如果UserDefaults包含推送数据,则从那里自行处理。否则,做正常的事情。


推荐阅读