gpt4 book ai didi

ios - DidReceiveNotificationRequest 未被调用

转载 作者:行者123 更新时间:2023-12-01 15:44:32 25 4
gpt4 key购买 nike

我有一个 xamarin 表单应用程序,当我收到来自服务器的通知时,没有调用 ios 通知服务扩展。

到目前为止,我做了以下事情:

  1. 在 apns 负载中添加了 mutable-content = 1

  2. 这就是我在服务中操作 apns 负载的方式

    public class NotificationService : UNNotificationServiceExtension
{
Action<UNNotificationContent> ContentHandler { get; set; }
UNMutableNotificationContent BestAttemptContent { get; set; }

protected NotificationService(IntPtr handle) : base(handle)
{

}

public override void DidReceiveNotificationRequest(UNNotificationRequest request, Action<UNNotificationContent> contentHandler)
{
ContentHandler = contentHandler;
BestAttemptContent = (UNMutableNotificationContent)request.Content.MutableCopy();

var newAlertContent = new UNMutableNotificationContent
{
Body = "Body from Service",
Title = "Title from Service",
Sound = BestAttemptContent.Sound,
Badge = 2
};
ContentHandler(newAlertContent);
}

public override void TimeWillExpire()
{
}
}
  1. 我还完成了通知服务扩展包 ID。(我的应用程序包 ID 是 com.companyname.appname.test,扩展包 ID 是 com.companyname .appname.test.xxxxServiceExtension

  2. 在 AppDelegate 类的 Finishlaunching 方法中,我还添加了权限代码。

  UNUserNotificationCenter.Current.RequestAuthorization(UNAuthorizationOptions.Alert, (approved, err) => {
});

还有什么我需要做的吗?

最佳答案

仅当远程通知的负载包含以下信息时,系统才会执行您的通知内容应用扩展:

有效负载必须包含值为 1 的可变内容键。

有效负载必须包含带有标题、副标题或正文信息的警报字典。

list 2 显示了包含加密数据的通知负载的 JSON 数据。设置了可变内容标志,以便用户的设备知道运行相应的服务应用程序扩展,其代码如中所示。

list 2指定远程通知负载

{
“aps” : {
“category” : “SECRET”,
“mutable-content” : 1,
“alert” : {
“title” : “Secret Message!”,
“body” : “(Encrypted)”
},
},
“ENCRYPTED_DATA” : “Salted__·öîQÊ$UDì_¶Ù∞è Ω^¬%gq∞NÿÒQùw”
}

您确定指定了警报键吗?

关于ios - DidReceiveNotificationRequest 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585257/

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