gpt4 book ai didi

ios - 如何在后台显示警报之前处理通知?

转载 作者:行者123 更新时间:2023-12-01 19:52:14 24 4
gpt4 key购买 nike

所以我的应用程序中有这个“静音聊天室”功能。
如果聊天室被静音,则来自该聊天室的通知数据包含“mute = 1”
像下面这样,

AnyHashable("aps"): {
"content-available" = 1;
alert = "Android @qwer: Gggggggg";
badge = 8;
sound = default;},
AnyHashable("custom"): {
a = {
comment = 423;
event = 133;
mute = 1;
};
}

当我收到该通知时,我决定天气根据静音 bool 值显示警报/声音

当我在应用程序处于前台时收到通知时它工作正常

它是这样的:
func userNotificationCenter(_ center: UNUserNotificationCenter,  willPresent notification: UNNotification, withCompletionHandler  completionHandler: @escaping (_ options:   UNNotificationPresentationOptions) -> Void) {  let userInfo = notification.request.content.userInfo

guard let data = userInfo["custom"] as? [String: Any] else { return }

guard let additional = data["a"] as? [String: Any] else {
print ("no addi")
return }

let mute = additional["mute"] as? NSNumber

if mute == 1 {

completionHandler([ .badge])

} else if mute == 0 {

completionHandler([.alert, .badge, .sound])

}}

但是当应用程序在后台时,事情变得很棘手,

当我在应用程序处于后台时收到通知时,

这种方法
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable: Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)

被调用,它会立即显示一个通知警报。

那么当应用程序在后台时,我应该如何将聊天室静音(不显示警报和静音)......

非常感激!!!

最佳答案

实现这一目标的最佳方式。

如果您的 chatroommute那么你的server已经知道了,因为服务器正在发送 push notification带有标志mute : 1
所以,后端必须检查,如果 mute值为 true然后不要添加 alert & sound push payload 中的关键字.即使应用程序处于后台/前台,这也可以。

样本负载:

{
"aps" : {
"content-available" : 1,
"badge" : 8
}
//Custom data here.
}

关于ios - 如何在后台显示警报之前处理通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45075782/

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