Xamarin形式的NotificationHub:如何判断通知是否已发送

时间:2017-10-28 07:52:33

标签: azure xamarin.forms azure-notificationhub

我正在使用NotificationHub向标签为tag_12的设备发送基本的待处理预订消息。

var apsOutcome = await PushNotification(Apple, tag, siteId, message);
if (apsOutcome.Success > 0)
{
  siteBookings.BookingList.ForEach(y => y.IsApsSend = true);
}

我可以用它来发送消息,但不确定NotificationOutcome是如何工作的。

我有数据返回NotificationOutcome.Success = 2而其他一些数据返回Success = 0且Failure = 0

2代表什么?它是NotificationOutcomeState.Process,但是NotificationOutcomeState.Completed呢。

 private async Task<NotificationOutcome> PushNotification(string pns, string tagExpression, int siteId, string message)
    { 
        var outcome = new NotificationOutcome();

        switch (pns)
        {
            case Apple:
                var payload1 = String.Format("\"alert\" : \"{0}\", \"siteId\": {1}, \"message\" : \"{2}\"", message, siteId, message);
                var apsPayload = String.Format("\"aps\" : {0}", "{"+payload1+"}" );
                outcome = await hubClient.SendAppleNativeNotificationAsync("{"+apsPayload+"}", tagExpression);
                   break;
            case FireBase:
                var payload2 = "{" + String.Format("\"siteId\": {0}, \"message\" : \"{1}\" ", siteId, message) + "}";
                var fireBasePayload = "{" + String.Format("\"data\" : {0}", payload2) + "}";
                outcome = await hubClient.SendGcmNativeNotificationAsync(fireBasePayload, tagExpression);
                break;
        }

        return outcome;
    }

1 个答案:

答案 0 :(得分:0)

在我看来,我认为NotificationOutcome.Success值意味着消息NotificationOutcomeState的值已完成。

  

已完成:NotificationOutcome已收到通知已发送

这意味着&#34;由相应的推送通知服务&#34;接收。如果它是iOS设备,它将被APNS&#34;收到。