如何获得用户信息时通知用户点击应用程序被关闭时,

问题描述 投票:6回答:3

我在做一个应用程序,安排本地通知,并保存用户信息的。这部分的确定。

但是,当应用程序被关闭,通知出现,但在用户点击,该方法不叫,我不能处理用户信息。

我看到有收到通知,UNUserNotificationCenter了新的途径。但是,是不是工作压力太大。

这是我在AppDelegate中实现:

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

    let lNotification = UILocalNotification()
    lNotification.userInfo = response.notification.request.content.userInfo

    applicationWorker.manage(localNotification: lNotification)
}

任何人都可以帮我吗?我看到这里所有相关的问题,并没有发现任何东西。

谢谢!

编辑:

如果有人正在寻找一个解决方案,我加入UNUserNotificationCenter.current().delegate = selfdidFinishLaunchingWithOptions和它的工作。

ios swift swift3 notifications uilocalnotification
3个回答
5
投票

从iOS的10起,你提到的方法应该被称为应用程序是否与背景或不活动状态下打开。也许你没有正确访问用户信息。下面的例子为我工作。

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

    let userInfo = response.notification.request.content.userInfo
    if let yourData = userInfo["yourKey"] as? String {
        // Handle your data here, pass it to a view controller etc.
    }
}

编辑:按照编辑的问题,通知中心代表必须在didFinishLaunching()方法设置,或者上面的方法将不会被调用。

UNUserNotificationCenter.current().delegate = self

0
投票

您可以得到了启动选项通知用户信息时,应用程序从通知打开。下面是代码

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

   if let notification = launchOptions?[UIApplicationLaunchOptionsKey.remoteNotification] as? [String: AnyObject] {
                if let aps = notification["aps"] as? NSDictionary
                    {

                    }
            }
}

-1
投票

使用UNUserNotificationCenter.current().getDeliveredNotifications得到通知。

您可以在viewDidLoad中使用()

    UNUserNotificationCenter.current().getDeliveredNotifications { (notification) in

        if notification.count > 0 {
            //your code
        }

    }

我希望这有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.