ios - Firebase 静默通知不会启动已关闭的 iOS 应用
问题描述
FCM 静默通知可以启动关闭的 iOS 应用程序吗?
Request Type: POST
Request URL: https://fcm.googleapis.com/fcm/send
Request Headers:
Authorization -> key=MY_KEY
Content-Type -> application/json
Request Body:
{
"to": "/topics/my_topic",
"content_available": true,
"data": {
"contentAvailable": 1
},
"priority": 10
}
但是,如果用户关闭此有效负载,它不会启动我的 iOS 应用程序。
每当收到静默通知时,如何让 iOS 启动我的应用程序?
解决方案
不启动应用程序是预期的行为。我的意思是为什么要这样做?用户出于某种原因决定终止该应用程序。他们不想再使用电池或带宽了!
从文档。
使用此方法为您的应用处理传入的远程通知。与 application(_:didReceiveRemoteNotification:) 方法不同,该方法仅在您的应用程序在前台运行时调用,系统在您的应用程序在前台或后台运行时调用此方法。此外,如果您启用了远程通知后台模式,系统会启动您的应用程序(或将其从挂起状态唤醒)并在远程通知到达时将其置于后台状态。但是,如果用户强制退出,系统不会自动启动您的应用程序。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会再次尝试自动启动您的应用程序
对于非静音通知。他们会被送到设备上。但不是应用程序。
如果你在你的 iPhone 上强制关闭你的 Whatsapp,而你的母亲给你发了一条消息,那么你的iPhone会在它的通知中显示它。但是它不会触发您的任何 AppDelegate 方法。AppDelegate 方法仅在应用未被用户终止时触发。
推荐阅读
- android-studio - 在 Android Studio 中设置 http 客户端的好方法是什么?
- android - 强制第三方 API 在不同的线程上运行
- reactjs - Storybook 中的默认道具值不正确
- firebase - 使用 Google AppScripts,将数据从 firebase 导出到 google sheet 的数据具有值为值的数据类型
- python - 在两列中逐行创建新值
- java - 在Android中将不同的字符串添加到不同的arraylists的更好方法是什么?
- kubernetes - 为什么我们需要 Kubernetes 上的服务网格?
- angular - 如何实现其他状态的状态数组
- php - 如何在不删除标签的情况下替换 HTML 标签内的空格
- vscode-extensions - 有没有像 openTypeCompletion 这样的事件?