当设备再次可用时 APNS 推送不会重新发送,GCM 推送是
APNS pushes not re-sent when device becomes available again, GCM pushes are
我正在使用 Azure 通知中心向 iOS 和 Android 设备发送推送通知。当前,如果发送推送时设备不可用(例如,它没有信号或已关闭电源),那么在 iOS 上永远不会收到推送,而在 Android 设备上推送在设备再次可用后几秒钟内收到。
这是我在 NH 配置中控制的东西,还是由 Azure NH 内部管理的?
如果它由 NH 内部处理,有什么方法可以让我知道应用何时未成功接收推送并安排重新发送?
默认情况下,Azure NH 通过将 APNS 过期时间设置为零来发送通知(APNS 将通知视为立即过期并且不存储通知或尝试重新发送通知)但这在发送通知时是可配置的,使用这个 API:
public Task<NotificationOutcome> SendNotificationAsync(
Notification notification
)
示例:
AppleNotification notification = new AppleNotification(jsonPayload, DateTime? expiry)
expiry
标识通知不再有效并可以丢弃的日期。
await SendNotificationAsync(notification)
您还可以通过模板设置有效期。
首先,您必须像这样创建注册。
AppleTemplateRegistrationDescription registration = new AppleTemplateRegistrationDescription(DeviceToken)
{
BodyTemplate = new CDataMember(ApnsBodyTemplate)
};
registration.Expiry = @"$(apnsexpirytime)";
await client.CreateRegistrationAsync(registration);
您可以使用 SendTemplateNotificationAsync
API 像这样发送过期的苹果通知。
DateTime actualExpiryTime = DateTime.UtcNow.AddHours(1);
Dictionary<string, string> nameValuePairs = new Dictionary<string, string>();
// other template property values
nameValuePairs.Add("apnsexpirytime", actualExpiryTime.ToString("o"));
await client.SendTemplateNotificationAsync(nameValuePairs);
我正在使用 Azure 通知中心向 iOS 和 Android 设备发送推送通知。当前,如果发送推送时设备不可用(例如,它没有信号或已关闭电源),那么在 iOS 上永远不会收到推送,而在 Android 设备上推送在设备再次可用后几秒钟内收到。
这是我在 NH 配置中控制的东西,还是由 Azure NH 内部管理的?
如果它由 NH 内部处理,有什么方法可以让我知道应用何时未成功接收推送并安排重新发送?
默认情况下,Azure NH 通过将 APNS 过期时间设置为零来发送通知(APNS 将通知视为立即过期并且不存储通知或尝试重新发送通知)但这在发送通知时是可配置的,使用这个 API:
public Task<NotificationOutcome> SendNotificationAsync(
Notification notification
)
示例:
AppleNotification notification = new AppleNotification(jsonPayload, DateTime? expiry)
expiry
标识通知不再有效并可以丢弃的日期。
await SendNotificationAsync(notification)
您还可以通过模板设置有效期。
首先,您必须像这样创建注册。
AppleTemplateRegistrationDescription registration = new AppleTemplateRegistrationDescription(DeviceToken)
{
BodyTemplate = new CDataMember(ApnsBodyTemplate)
};
registration.Expiry = @"$(apnsexpirytime)";
await client.CreateRegistrationAsync(registration);
您可以使用 SendTemplateNotificationAsync
API 像这样发送过期的苹果通知。
DateTime actualExpiryTime = DateTime.UtcNow.AddHours(1);
Dictionary<string, string> nameValuePairs = new Dictionary<string, string>();
// other template property values
nameValuePairs.Add("apnsexpirytime", actualExpiryTime.ToString("o"));
await client.SendTemplateNotificationAsync(nameValuePairs);