不显示仅包含数字的 iOS 推送通知

Posted

技术标签:

【中文标题】不显示仅包含数字的 iOS 推送通知【英文标题】:iOS Push Notification containing only numbers is not displayed 【发布时间】:2017-02-07 18:03:50 【问题描述】:

我正在使用 One Signal 发送推送通知。但是,如果通知内容正文仅包含数字,则不会显示。

手机振动,甚至徽章编号也按预期增加,但没有显示。它发生在 ios 9 和 10 上。

如果我记录内容,我可以看到数字,因此它可以完美显示,但不会显示。

有什么可能导致这种情况的想法吗?

【问题讨论】:

两件事。 1. 有效负载应如下所示"aps":"badge":3 2. 应打开显示应用程序徽章的设置。 我想你误解了我的问题。我可以增加徽章编号,这不是问题。但是,如果通知正文是一个仅包含数字的字符串,则不会显示。 那么您已经确认完全相同的代码可以工作并在包含任何字母字符时显示本地通知? @wottle 是的,请看我的回答 【参考方案1】:

好的,这是我的解决方案:

我不知道它是 OneSignal 错误还是 iOS 错误,但似乎通知只包含一个仅包含数字的 content 值,它不会显示。手机震动了,但什么也没显示。

确保您在 title 字段中也包含一些内容(这些只能是数字),然后您的仅包含数字内容的通知将正确显示。

希望这对某人有所帮助!

【讨论】:

您是否尝试过发送没有标题字段的非数字消息?我只是想确认它只是一个没有标题字段的数字消息是一个问题。 很高兴知道。感谢您的澄清! 也遇到了这个。一定是 OneSignal 错误(或奇怪的规范)【参考方案2】:

您需要处理来自应用委托文件的通知并显示消息。您应该在 AppDelegate 的 didReceiveRemoteNotification 方法的用户信息参数中获取完整的通知正文。您需要从中检索信息并显示警报。

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) 

    println("Recived: \(userInfo)")
   //Parsing userinfo:
   var temp : NSDictionary = userInfo
   if let info = userInfo["aps"] as? Dictionary<String, AnyObject> 
            
                var alertMsg = info["alert"] as! String
                var alert: UIAlertView!
                alert = UIAlertView(title: "", message: alertMsg, delegate: nil, cancelButtonTitle: "OK")
                alert.show()
            
 

参考来自:https://***.com/a/30508985/905517

【讨论】:

以上是关于不显示仅包含数字的 iOS 推送通知的主要内容,如果未能解决你的问题,请参考以下文章

收到推送通知时不显示横幅仅振动设备

是否可以仅显示 Firebase 推送通知的徽章,而在 IOS(Swift 或 Obj-C)中没有警报?

在 ios 8 推送通知中没有显示当前应用程序的徽章

iOS:推送通知仅在应用程序在前台运行时才有效

如何仅在 iphone 中显示特定的推送通知?

iOS手机差距——推送通知不显示通知服务提示框