gpt4 book ai didi

c# - iOS 平台上的 Xamarin Forms 未收到应用程序中心推送通知

转载 作者:行者123 更新时间:2023-11-29 05:46:40 28 4
gpt4 key购买 nike

我已经在 ASP.Net Core Web API 上使用 AppCenter 实现了推送通知。服务器正在向 AppCenter 发送 HTTP 请求,AppCenter 负责向 Android 和 iOS 各平台推送通知。

移动应用是使用 Xamarin Forms 开发的。我已遵循 Microsoft 文档 here

Xamarin Android 应用程序像魅力一样接收每个推送通知。

问题出在 Xamarin iOS 应用程序上。设备未收到任何推送通知。

这是我所做的 iOS 设置:

  • 在生产(而非开发)权利中启用推送通知
  • 在我的 Apple 开发者帐户中创建了用于推送通知的 APN key 以进行生产
  • 为 AppCenter 设置提供 iOS APN key (带有应用 ID、前缀...)
  • 在 info.plist 中以后台模式启用远程通知
  • 通过将 AppCenterAppDelegateForwarderEnabled 键添加到 info.plist 来禁用混合
  • 重写 AppDelegate 中的 DidReceiveRemoteNotification 并实现 RegisteredForRemoteNotifications 、 FailedToRegisterForRemoteNotifications 方法

然后,我已在生产模式下成功将应用发布到 TestFligth。

启动应用程序时,我通过调用方法 AppCenter.GetInstallIdAsync() 获取应用程序中心设备 InstallId。

最后,当发送推送通知时,没有任何反应。而且我没有任何日志来搜索问题。

我是否错过了一些东西来使其发挥作用?

最佳答案

AppCenter为每个平台提供不同的AppSecret。你应该这样做:

        if (Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.iOS)
{
//Start AppCenter Push notification with iOS app secret
AppCenter.Start("xxxxxxxxxxxxxxxxxxxxxxx", typeof(Push));
}
else if (Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.UWP)
{
//Start AppCenter Push notification with UWP app secret
AppCenter.Start("xxxxxxxxxxxxxxxxxxxxxxx", typeof(Push));
}
else if(Xamarin.Forms.Device.RuntimePlatform == Xamarin.Forms.Device.Android)
{
//Start AppCenter Push notification with Android app secret
AppCenter.Start("xxxxxxxxxxxxxxxxxxxxxxx", typeof(Push));
}

关于c# - iOS 平台上的 Xamarin Forms 未收到应用程序中心推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56089324/

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