当前位置: 首页 > 知识库问答 >
问题:

使用Xamarin表单设置Android和iOS推送通知徽章时出现问题

艾正浩
2023-03-14

我在Xamarin表单应用程序上使用推送通知时遇到图标徽章问题。我正在使用Firebase将应用程序发送到两台设备。

我让徽章在android上工作的方式是,该应用程序从有效负载的“数据”部分获取完整的通知信息。当通知只有一个数据部分时,我可以触发一个功能,设置徽章并显示弹出通知。如果我把相同的信息放在“通知”部分,我就不能触发设置徽章。

对于iOS,徽章计数从负载的通知部分发送。iOS看不到数据部分,并创建一个自动弹出窗口。我尝试过在应用程序处于后台时触发一个html" target="_blank">函数,但找不到方法。

一句话:iOS需要“通知”负载,Android需要“数据”负载来显示正确的徽章。

有人知道当应用程序在后台并且收到推送通知时,我如何在iOS上的AppDelegate中触发函数吗?和/或有人知道当有效负载中有“通知”部分时,如何在Android中触发函数吗?

这是我的有效载荷:

{
    "to":"{mytoken}",
    "notification":{
        "title":"Appointment Almost Booked",
        "body":"Please confirm your appointment",
        "badge":3
    },
    "data":{
        "title":"Appointment Almost Booked",
        "body":"Please confirm your appointment slot",
        "badge":3
    }
}

共有1个答案

夏飞跃
2023-03-14

对于iOS:

你可以参考:

https://firebase.google.com/docs/cloud-messaging/http-server-ref#notification-有效载荷支持。

在表1中,有一个属性content\u可用可以设置为在应用程序处于后台时唤醒应用程序。

在iOS上,使用此字段表示APNs有效负载中可用的内容。当发送通知或消息并将其设置为true时,将唤醒非活动客户端应用程序,消息将通过APN作为静默通知发送,而不是通过FCM连接服务器发送。请注意,APN中的静默通知不一定会发送,这取决于用户打开低功耗模式、强制退出应用程序等因素。在Android上,数据消息默认会唤醒应用程序。在Chrome上,当前不受支持。

然后您可以在didReceiveMemotentification中触发您的函数。

这里有一个链接可以帮助您:

https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-xamarin-forms-get-started-push#configure-and-run-the-ios-project-optional

 类似资料:
  • 我已经为我的Xamarin.Forms UWP应用程序实现了一个推送通知功能,我可以接收通知,然后弹出一个祝酒词。我正在使用下面的代码。 当用户单击/轻击通知时,我想从我的PCL项目中打开一个特定的页面,并将这个变量作为参数传递。我怎么能这么做?如有任何帮助,我们将不胜感激。

  • 在我的应用程序中,我使用firebase推送通知。我想为所有版本的设备(如Whatsapp)显示应用图标徽章(应用图标上的点), 在Android8中,徽章仅通过打开设置(在手机中)显示- 默认情况下,我需要打开此设置

  • 我有一个使用Xamarin.Forms的应用程序,针对IOS,Android和WP 8。 我的应用中需要推送通知功能。 我看过<code>pushsharp</code>演示,它似乎很有前途。但我看到的所有代码都是针对每个平台分别编写的。 我希望这件事能在法庭上进行。Forms项目,在App.cs中的某个地方,这样我就不需要重复注册设备的代码,也不需要处理应该如何处理推送通知。 任何帮助都将不胜感

  • 我想显示推红点在所有设备像三星,索尼,Lg等,我想显示红点像Facebook本地应用程序。所以从技术上讲,如果你的应用程序已经这样做了,你不需要做任何其他事情。但是有些设备有自己的框架徽章接收器。 在索尼 http://marcusforsberg.net/blog/android-notification-badge-app-icon-sony/ 在三星 https://github.com/s

  • full方法使用不同的方法,但值仍然不会传递给mainActivity。总是有一个空的?

  • 我正在尝试设置firebase-cloud-messaging来向用户显示通知。使用web通知,所有工作都按预期进行。 不过,我也想通过应用程序发送它们,但应用程序还不认可服务工作者。 我的头都绕不过去了。如何使用vue.js安卓/iOS应用接收推送通知?我应该使用插件吗?如果是,哪些插件?目前使用quasar、Vue.js、FCM。