c# - Xamarin iOS RegisteredForRemoteNotifications 间歇性不调用 Android 100% 的时间工作

标签 c# android ios azure xamarin

我断断续续地花了“几周”的时间来解决这个问题。我已经搁置了 iOS 通知要求并转向其他要求。但现在,我需要解决这个问题。

我从 Microsoft azure-notification-hub 示例开始...相当多的其他示例/文档引用了此示例代码。 https://learn.microsoft.com/en-us/xamarin/xamarin-forms/data-cloud/azure-services/azure-notification-hub

使用 Azure 通知中心和 Xamarin.Forms 发送和接收推送通知(2019 年 11 月 27 日发布)

...并严格遵循所提供的说明,我最初能够使用 Dispatcher 项目将 Azure 推送通知发送到 iOS 和 Android。

通过位置更改检测和中间层调用增强此示例代码一周后,iOS 项目无缘无故地停止工作。我创建了一个新的 WinForms 调度程序项目,其中管理 Azure 通知中心注册(仅查看和删除),并且我可以看到 iOS 和 Android Azure 设备注册。这取代了上面示例中附带的命令行调度程序。

有时,iOS(实际的 iPhone)会开始接收通知。然而,大多数时候,iPhone 不会收到通知,很多时候甚至不会向 Azure 注册。 Azure 门户反射(reflect)了这些发现。

** 通过 Azure 通知中心路由 Android Firebase 通知时,我“完全”没有遇到任何问题 **

最终,我回到了上面提到的 Microsoft 提供的 Azure 通知中心示例来重新设定基准。即使是那个已知良好、之前可以正常工作的示例也表现出相同的 iOS 问题(有时未注册到 Azure,并且注册时经常未收到通知)。

昨晚我通宵达旦地试图解决这个问题,或者至少建立一个发生这个问题的模式,更重要的是,如何重置我的基线以使其发挥作用。有一段时间,下面的过程似乎在大约 80% 的时间内有效......

1) 使用我修改后的 Dispatcher WinForms 应用手动删除所有 Azure 通知中心注册。 2) 从物理 iPhone 和 Android 模拟设备中删除该应用程序。 3) 停止 Visual Studio 2019 4)!!!关闭 iPhone 并等待至少 20 分钟! 5)打开iPhone 6)启动Visual Studio 2019并加载上述基线项目。 7) 在 DEBUG 模式下执行 iOS、Android 和 Dispatcher 项目。

通过此过程,iPhone 将注册并开始接收 Azure 推送通知...通常比立即收到 Android 通知晚 20 至 30 秒。这个过程并不总是有效......并且需要很多时间。

现在,iOS 设备(实体 iPhone)将在大约 40% 的时间进行注册,并且不再接收推送通知。

一时兴起,我创建了第二个 Azure 通知中心,并遇到了完全相同的 iOS 问题。

当然,我不可能是这个星球上唯一遇到这些问题的人。

我的团队依靠我获得可靠的推送通知来在 iOS 和 Android 上工作。

任何帮助都将不胜感激,只需朝正确的方向插入即可。我的理智取决于它。

非常感谢, 唐

MacBook Air macOS Catalina 10.15.4 Xcode 版本 11.4.1 (11E503a)

PC Windows 10 Pro 版本 1909 操作系统内部版本 18363.778 Visual Studio 2019 版本 16.5.4 Xamarin.Forms 4.5.0.617 Microsoft.Azure.NotificationHubs 版本 3.3.0

最佳答案

我已经确定了造成这种情况的原因,我不得不说,我对 Apple 导致这种情况发生感到惊讶。

Apple 开发者计划和许可协议(protocol)更新导致推送通知开发整整一周陷入瘫痪。难以置信。没有错误消息、警告或电子邮件。 iOS 推送通知突然停止工作。

突发奇想,我决定检查我的 Apple 开发者帐户是否有警告消息或警报。当我登录时,我遇到了那个巨大的红色帐户横幅,表明许可协议(protocol)已更新。我不是主要的 Apple 开发者帐户持有者,因此我必须联系我们的客户并要求他们阅读和/或点击它。大约一年前,出于同样的原因,我无法将我们的 iOS 应用程序上传到应用程序中心(或今天的名称)。

关于c# - Xamarin iOS RegisteredForRemoteNotifications 间歇性不调用 Android 100% 的时间工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61275304/

相关文章:

android - 蓝牙低功耗: transmitWindowSize: can it be controlled?

ios - Sencha touch/cordova 应用程序在 ios8 启动时随机崩溃

ios - UIToolbar 在 iPad2 上不透明

c# - System.Web.HttpException : A potentially dangerous Request. 从客户端检测到路径值 (&)

c# - 播放视频时图片闪烁的页面

java - 陷入解析 JSON 的困境

iphone - 我怎样才能得到自己的手机号码?

c# - C# .NET 中通过 HTTP 发布的 SOAP 对象

c# - 将 JSON 转换为类会更改字符串值。 JSON.NET 中的错误?

android - Kotlin 使用 Gson 将 json 字符串转换为对象列表