gpt4 book ai didi

azure - 带有 Azure 通知中心的 Xamarin Forms IOS

转载 作者:行者123 更新时间:2023-12-02 07:23:32 24 4
gpt4 key购买 nike

我知道这个问题被问过多次。所以请耐心听我说。

我正在尝试使用 Xamarin Forms 通过我的 Android/iOS 客户端实现 Azure 通知中心。

对于 Android,一切正常,但对于 iOS,我没有收到任何通知。

这是我为 iOS 所做的工作的 list

  1. 生成证书和配置文件
  2. 已在 MacOS 上注册证书
  3. 导出 p12 文件并导入到 Azure Hub
  4. 我还在Info.plist中添加了权限(后台远程通知)
  5. Entitlements.plist 文件没有变化
  6. 我能够从 APN 服务获取设备 token
  7. 获得 token 后我可以注册到 Azure Hub

但我无法收到任何通知,也没有调用任何函数 (DidRegisterUserNotificationSettings,WillPresentNotification,ReceivedRemoteNotification,DidRegisterUserNotificationSettings,FailedToRegisterForRemoteNotifications,DidReceiveRemoteNotification)

但是RegisteredForRemoteNotifications被称为

我还测试了设备 token ,无论是否删除 '<> '但没有成功。

可能是什么问题?

这是我的代码

 public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken)
{
GlobalVariables.Instance.PnsToken = deviceToken.Description
.Replace("<", string.Empty)
.Replace(">", string.Empty)
.Replace(" ", string.Empty)
.ToUpper();
RegisteredForHub(application, deviceToken);
}

public void RegisteredForHub(UIApplication application, NSData deviceToken)
{
string pnsHandle = deviceToken.Description
.Replace("<", string.Empty)
.Replace(">", string.Empty)
.Replace(" ", string.Empty)
.ToUpper();
_hub = new SBNotificationHub(Constant.ListenConnectionString, Constant.NotificationHubName);

_hub.UnregisterNative((error) =>
{
if (error != null)
{
Debug.WriteLine($"Unable to call unregister Native {error}");
}
});
_hub.UnregisterTemplate("defaultTemplate",(error) =>
{
if (error != null)
{
Debug.WriteLine($"Unable to call unregister Template {error}");
}
});
// update registration with Azure Notification Hub
_hub.UnregisterAll(deviceToken, (error) =>
{
if (error != null)
{
Debug.WriteLine($"Unable to call unregister {error}");
return;
}

var tags = new NSSet(Constant.SubscribeTags);
_hub.RegisterNative(pnsHandle, tags, (errorCallback) =>
{
if (errorCallback != null)
{
Debug.WriteLine($"RegisterNativeAsync error: {errorCallback}");
}
});
var templateExpiration = DateTime.Now.AddDays(120)
.ToString(System.Globalization.CultureInfo.CreateSpecificCulture("en-US"));
//_hub.RegisterTemplate(deviceToken, "defaultTemplate", Constant.ApnTemplateBody, templateExpiration,
// tags, (errorCallback) =>
// {
// if (errorCallback != null)
// {
// Debug.WriteLine($"RegisterTemplateAsync error: {errorCallback}");
// }
// });
});

最佳答案

经过大量的试验和错误以及长时间的谷歌搜索。我发现问题出在 Azure 上。

我上传了正确的证书,但密码是一个字符,因此没有发送任何通知。

如果用户为其证书文件输入了错误的密码,Azure 应提示用户输入 APN。

关于azure - 带有 Azure 通知中心的 Xamarin Forms IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60257950/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com