我在Azure中有一个通知中心,可以将PUSH发送到Android和iOS设备。一切都在Android中运行良好。在iOS中我遇到了这个问题:
我收到了所有 WhatsApp消息通知,但没有通知我的应用程序。如果设备和Internet处于打开状态,我会毫无问题地收到通知。
我的问题是:任何人都有过这样的经历或者知道如何解决这个问题? 至少我应该接受最后一次推动,对吗?
我将推送发送到标签。当WiFi或iPhone关闭时,我可以看到设备在集线器中注册。
答案 0 :(得分:0)
发送通知时,请确保设置过期时间。默认值为零。因此,APN会将通知视为立即过期,并且不存储通知或尝试重新发送通知。
<强> APNS过期强>
如果此值非零,则APN存储通知 并尝试至少传递一次,根据需要重复尝试 如果第一次无法发送通知。如果 值为0,APN将通知视为立即过期 并且不存储通知或尝试重新发送通知。
如果您使用的是模板通知,请按以下步骤操作。
AppleTemplateRegistrationDescription registration = new AppleTemplateRegistrationDescription(parameters.registrationID)
{ BodyTemplate = new CDataMember("{\"aps\":{\"alert\":\"$(body)\",\"payload\":\"$(payload)\",\"deeplinking\":\"$(deeplinking)\",\"category\":\"$(category)\",\"image\":\"$(image)\"}}"),
Tags = itags,
Expiry = "$(APNS_Expiry)"
};
作为发送的一部分,您可以传递到期值。
var notification = new TemplateNotification(new Dictionary<string, string>()
{
{"APNS_Expiry", DateTime.UtcNow.AddMinutes(10).ToString("o") }, //Timestamp
{"body", NotificationText},
{"payload", NotificationText},
{"deeplinking", payload},
});
var Responsehub = hub.SendNotificationAsync(notification);
如果您使用的是原生通知,
// Native notification
var notification = new AppleNotification(@"
{
""aps"": {
""alert"":""New notification!""
}
}");
notification.Expiry = DateTime.UtcNow.AddMinutes(2);
await notificationHubClient.SendNotificationAsync(notification);
答案 1 :(得分:0)
如果您使用的是模板通知,请按以下步骤操作。
AppleTemplateRegistrationDescription registration = new AppleTemplateRegistrationDescription(parameters.registrationID)
{ BodyTemplate = new CDataMember("{\"aps\":{\"alert\":\"$(body)\",\"payload\":\"$(payload)\",\"deeplinking\":\"$(deeplinking)\",\"category\":\"$(category)\",\"image\":\"$(image)\"}}"),
Tags = itags,
Expiry = "$(APNS_Expiry)"
};
作为发送的一部分,您可以传递到期值。
var notification = new TemplateNotification(new Dictionary<string, string>()
{
{"APNS_Expiry", DateTime.UtcNow.AddMinutes(10).ToString("o") }, //Timestamp
{"body", NotificationText},
{"payload", NotificationText},
{"deeplinking", payload},
});
var Responsehub = hub.SendNotificationAsync(notification);
如果您使用的是原生通知,
// Native notification
var notification = new AppleNotification(@"
{
""aps"": {
""alert"":""New notification!""
}
}");
notification.Expiry = DateTime.UtcNow.AddMinutes(2);
await notificationHubClient.SendNotificationAsync(notification);