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

标签 ios swift

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

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
    }

触摸推送时的执行代码 在主页面加载之前执行,应用程序终止。 执行代码什么时候有办法等待触摸推送?

最佳答案

If the app is launched by touching the push, is there a way to run the code after waiting for the main page of my app to finish loading?

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

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

关于ios - 如果应用是通过触摸推送启动的,有没有办法等待应用的主页面完成加载后运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54283908/

相关文章:

ios - 发送到新的View Controller的数据为nil,展开了一个可选值

Swift canOpenURL() 错误 iOS9 隐私问题电话 ://and telprompt://

ios - 如何在 scenekit 中创建 3D 网格

ios - 如何使用多坐标绘制多边形(不使用 MKPolygon)并检查当前位置是否在 Swift 3 中的多边形中

ios - 自定义对象访问

ios - 如何在 iOS 13 的 Swift 中立即更改状态栏文本颜色

algorithm - 将一个随机值分成四个总和

ios - 如何在 OSX 应用程序中使用核心蓝牙?

ios - UIContainerView 需要什么版本的 iOS?

ios - 为什么窗口自动释放并在 iOS 6 应用程序中释放?