Azure 通知中心不适用于 ios
Posted
技术标签:
【中文标题】Azure 通知中心不适用于 ios【英文标题】:Azure Notification Hub doesn't work for ios 【发布时间】:2016-04-30 15:52:46 【问题描述】:Following this tutorial 我创建了 azure 通知中心并添加到我的应用程序注册中。我的应用注册远程通知成功,当我尝试在后端注册设备时,我成功获得了我的安装 ID。
public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
MobileServiceClient client = QSTodoService.DefaultService.GetClient;
const string templateBodyAPNS = "\"aps\":\"alert\":\"$(messageParam)\"";
JObject templates = new JObject();
templates["genericMessage"] = new JObject
"body", templateBodyAPNS
;
// Register for push with your mobile app
var push = client.GetPush();
push.RegisterAsync(deviceToken, templates);
但是当尝试发送通知时
// Get the settings for the server project.
HttpConfiguration config = this.Configuration;
MobileAppSettingsDictionary settings =
this.Configuration.GetMobileAppSettingsProvider().GetMobileAppSettings();
// Get the Notification Hubs credentials for the Mobile App.
string notificationHubName = settings.NotificationHubName;
string notificationHubConnection = settings
.Connections[MobileAppSettingsKeys.NotificationHubConnectionString].ConnectionString;
// Create a new Notification Hub client.
NotificationHubClient hub = NotificationHubClient
.CreateClientFromConnectionString(notificationHubConnection, notificationHubName);
// Sending the message so that all template registrations that contain "messageParam"
// will receive the notifications. This includes APNS, GCM, WNS, and MPNS template registrations.
Dictionary<string, string> templateParams = new Dictionary<string, string>();
templateParams["messageParam"] = "some message";
try
var result = hub.SendTemplateNotificationAsync(templateParams);
catch (System.Exception ex)
config.Services.GetTraceWriter()
.Error(ex.Message, null, "Push.SendAsync Error");
结果说“发送成功:0,发送失败:0。
这个问题的原因是什么?
更新
当我尝试通过 azure 发送通知时,我不认为 sertificate 或配置文件的问题 - 它发送。 (虽然我没有收到,但这已经是另一个问题了)。
更新 2
我也试过发送到注册标签,
string payload = "\"aps\":\"alert\":\"Notification Hub test notification\"";
List<string> tags = new List<string> "testTag";
hub.CreateAppleTemplateRegistrationAsync(token,payload,tags);
Dictionary<string, string> templateParams = new Dictionary<string, string>();
templateParams["messageParam"] = "message";
var res = hub.SendTemplateNotificationAsync(templateParams, tags);
和苹果原生通知,但结果是一样的。
hub.SendAppleNativeNotificationAsync(payload);
顺便说一句,notificationId 为空,状态通知显示为“入队”。
【问题讨论】:
您是否已验证您正在使用“侦听、管理、发送”连接字符串(来自 Azure)作为 notificationHubConnection? 是的,我正在使用 FullSharedAccessSignature 进行连接 您确定为您的应用程序使用了正确的配置文件吗?如果不是,则不会收到任何内容。 【参考方案1】:我最终从头开始学习教程、重新创建证书、配置文件、通知中心等,现在它可以工作了。
【讨论】:
以上是关于Azure 通知中心不适用于 ios的主要内容,如果未能解决你的问题,请参考以下文章
[Azure通知中心上的iOS13 apns-push-type标头
如何将原始推送通知从 Azure 通知中心发送到 iOS 设备?
如何在 iOS 的 Azure 移动应用通知中心注册目标推送通知