App not 运行 状态下推送如何处理?
How to handle Push on App not running state?
是否可以根据推送通知内容打开iOSApp?我相信这是不可能的。还有其他办法吗?我相信我们可以使用 iOS10 中的小部件,对吗?请提出一些好的解决方案?
谢谢!
是的,我们无法在推送通知时打开 ios 应用程序,但我们可以在推送通知时唤醒应用程序。它称为 VOIP 通知。您可以从下方获得更多相关信息 link https://github.com/hasyapanchasara/PushKit_SilentPushNotification
每当用户 点击 推送通知时,应用程序从非 运行 状态启动到 运行 状态,在 AppDelegate
中
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
}
in this function you can check application is launch from push or application icon
var notification: [AnyHashable: Any]? = (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as? [AnyHashable: Any])
if notification != nil {
print("app received notification from remote\(notification)")
application(application, didReceiveRemoteNotification: notification)
}
else {
print("app did not receive notification")
}
只要您的负载有 content-available:1
,您的应用就会在其到达后立即在后台状态中被调用并调用 application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
。只有当用户手动终止应用程序时,它才会被调用。 (这不会启动您的应用程序。它需要启动您的应用程序)
话虽如此,如果您的应用程序已(由用户)终止,但用户点击了通知,那么您的应用程序将从 didFinishLaunching...委托方法启动。
是否可以根据推送通知内容打开iOSApp?我相信这是不可能的。还有其他办法吗?我相信我们可以使用 iOS10 中的小部件,对吗?请提出一些好的解决方案?
谢谢!
是的,我们无法在推送通知时打开 ios 应用程序,但我们可以在推送通知时唤醒应用程序。它称为 VOIP 通知。您可以从下方获得更多相关信息 link https://github.com/hasyapanchasara/PushKit_SilentPushNotification
每当用户 点击 推送通知时,应用程序从非 运行 状态启动到 运行 状态,在 AppDelegate
中func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
}
in this function you can check application is launch from push or application icon
var notification: [AnyHashable: Any]? = (launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] as? [AnyHashable: Any])
if notification != nil {
print("app received notification from remote\(notification)")
application(application, didReceiveRemoteNotification: notification)
}
else {
print("app did not receive notification")
}
只要您的负载有 content-available:1
,您的应用就会在其到达后立即在后台状态中被调用并调用 application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
。只有当用户手动终止应用程序时,它才会被调用。 (这不会启动您的应用程序。它需要启动您的应用程序)
话虽如此,如果您的应用程序已(由用户)终止,但用户点击了通知,那么您的应用程序将从 didFinishLaunching...委托方法启动。