从服务器发送到主题的推送通知存在问题。实际上,这不是发送部分,而是接收。该推送通知是由某些 iOS设备接收的,而不是 all 。我们没有遇到Android设备方面的问题,我们有一份有关Android的报告,但我认为这是一个骗局。
我们用PHP构建一个请求:
$topic = '/topics/urgent_de';
$data = [
'to' => $topic,
'priority' => 'normal',
'notification' => [
'title' => $pushNotification->title_de,
'body' => $pushNotification->text_de,
'topic' => 'urgent',
'target' => $pushNotification->deeplink
],
'data' => [
'title' => $pushNotification->title_de,
'message' => $pushNotification->text_de,
'topic' => 'urgent',
'target' => $pushNotification->deeplink
]
];
设备使用以下方法在此主题上注册:
let sub:SupportedLanguage = UrlHelper.getBestSupportedLanguage() == .de ? .de : .en
static let topicUrgent = "/topics/urgent"
static let topicUrgentLocalizedPrefix = "urgent_"
let localizedUrgent = "\(Constants.Push.topicUrgentLocalizedPrefix)\(sub.rawValue)"
Messaging.messaging().subscribe(toTopic: localizedUrgent)
LoggingHelper.info("Subscribed to topic: \(localizedUrgent)")
Messaging.messaging().subscribe(toTopic: Constants.Push.topicUrgent)
LoggingHelper.info("Subscribed to topic: \(Constants.Push.topicUrgent)")
这意味着,每个设备不仅订阅本地化主题,还订阅一般主题。
去年9月,我们在两周内发出了几次推送,但公司中的某些设备收到了请求,有些则没有。它不取决于他们的应用程序或iOS版本。他们都获得了接受推送的许可。当我们发送该推送时,它们都已联机并正在运行。没有设备将我们的应用程序放在前台。有些人几个星期都没有启动该应用程序,有些人当天打开了。
总而言之,当我们查看公司中的所有设备时,只有其中一半会收到这些推送通知。
答案 0 :(得分:0)
这是一个简单的检查,但值得尝试。
请检查您是否在未接收到推送通知的设备上启用了推送通知。
另外,请检查iOS上的“授权”通知请求处理的是不同的iOS版本(Swift / iOS),因为它们不相同,可能会有所不同。
让我知道...