- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们在 OneSignal 中使用新的 iOS 严重警报功能时遇到问题。我们拥有的应用程序是使用 Apache Flex 构建的,并且推送通知有效负载正在通过 Distriqt ANE 编译/生成并通过OneSignal iOS SDK发送.我们已获得 Apple 的严重警报批准,但在尝试通过 OneSignal 发送有效负载时,它不起作用。
Distriqt 团队内置了对关键警报的支持,这很棒,但是一旦通过 OneSignal 发送,有效负载就不会成功传递,也不会生成关键警报。需要明确的是,一般推送通知工作正常。
OneSignal 有 documentation on Critical Alerts ,尽管它过于简化。 payload needed to trigger Critical Alerts on iOS很清楚,但没有办法通过 OneSignal iOS SDK 构建这样的有效负载。
在 link ,我们执行了#1 (Update OneSignal App Payload Structure for iOS)但是 #2 is unclear .有效载荷需要看起来像什么?提供的代码并没有说清楚。此外,引用的“通知类别扩展”是什么?如果识别出该代码,我们此时需要做什么?
我们已联系 OneSignal,但未能成功了解如何成功构建此有效载荷。文档说“OneSignal SDK 支持的 iOS 功能”,但从他们的支持中,我们收到了以下信息:
Unfortunately our SDK is not setup to handle critical alerts.
One user reported he achieved this with our additional data parameter like this:
"data": {"CRITICAL_ALERT":"YES","CRITICAL_PAYLOAD":{"CRITICAL_VOLUME":"1.0","CRITICAL_SOUND":"Alert.wav"}}
最佳答案
TL;DR 构建 iOS 通知服务扩展是解决方案。 The OneSignal documentation mentions this但细节要少得多。
当 Apple 引入严重警报时,他们更改了 sound
与 APNS 有效负载一起传递的参数。以前,sound
曾经只是一个字符串。例如:
{
“aps” : {
“sound” : “critical-alert-sound.wav”
}
}
{
“aps” : {
“sound” : {
“critical”: 1,
“name”: “critical-alert-sound.wav”,
“volume”: 1.0
}
}
}
sound
OneSignal 的参数,它只支持初始的“字符串”版本。当 OneSignal 将有效负载发送到 Apple 时,它会将其作为字符串传递,因此即使尝试将声音字典传递给 OneSignal 也无法正常工作,因为它在到达 Apple 之前已被解析。当 Apple 与您的设备进行通信时,字典已经消失,从而阻止设备将其识别为严重警报。
A UNNotificationServiceExtension object provides the entry point for a Notification Service app extension, which lets you customize the content of a remote notification before it is delivered to the user. A Notification Service app extension doesn't present any UI of its own. Instead, it is launched on demand when a notification of the appropriate type is delivered to the user’s device. You use this extension to modify the notification’s content or download content related to the extension.
additional_data_is_root_payload
将您 OneSignal 帐户上的值设为
true
.这是通过
Update an App API call 完成的。在 OneSignal 上。我用了
Postman为了这。需要明确的是,这需要做一次,而不是每次调用通知 API 时都需要重复。
mutable_content
true
的参数.
data
中的值。载荷参数。
data
有效负载是一个开放字段,可用于您想要通过 OneSignal->Apple->Device 流传递的任何附加信息,并且确实会传递到设备/应用程序,然后您可以根据需要对其进行解析。在我的示例中,我们使用:
"data": {"CRITICAL_ALERT":"YES"}
NotificationService.swift
的文件。具有
didReceive
的类里面的方法。然后我们添加了这段代码:
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestAttemptContent = bestAttemptContent {
// Modify the notification content here...
if ((request.content.userInfo["CRITICAL_ALERT"] as? String) == "YES"){
bestAttemptContent.sound = UNNotificationSound.defaultCriticalSound(withAudioVolume: 1.0)
}
contentHandler(bestAttemptContent)
}
request.content.userInfo
) 以查看
CRITICAL_ALERT
键的值设置为
YES
.如果是这样,我们会在通知中添加“关键声音”,从而有效地将其转变为关键警报。在这种情况下,我们使用 defaultCriticalSound 函数保持简单,但如果您想定义自己的声音,也可以使用 criticalSoundNamed。如果您想为特定通知创建特定声音,您还可以通过数据有效负载传递要用于警报的声音,然后对其进行解析并将其添加到通知服务扩展中。
关于ios - OneSignal 上的关键警报支持不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60330080/
使用 OneSignal (2.6.0) pod 成功安装,但它给出错误文件未在桥接头文件 xcode - 9.3,swift 4.1 中找到 最佳答案 从 github 存储库下载 OneSigna
我尝试通过 OneSignal 向 API REST 发送 API 通知,当我发送给一个唯一用户时它工作正常,但是当必须在 Json 中发送给多个用户时,通知会发送给唯一用户。 My JSON (li
当我从后端删除用户时,我还想从 OneSignal 数据库中删除该条目以保持我的数字和推送精确(对于 A/B 测试也很重要)。有没有办法做到这一点? 我搜索了 API,但似乎找不到任何可以删除条目的内
所以..我去使用服务器 api 更新我的播放器标签,所以我发送了 { "id": "someid", "tags":{"test1":"test2"}} 到这个信号 url(使用 python 和 g
Xcode 版本 7.3.1,我有开发者 apple id 嗨,我在工作和调试我的项目时遇到了奇怪的问题 错误提示:找不到 onesignal/onesignal.h 文件 我通过控制台安装和更新 p
我正在尝试在Android应用程序中设置OneSignal推送通知。我已经更改了build.gradle以包括所需的依赖关系(或者我认为)。 不管我做什么我都会得到 Failed to resolve
我已经打开了一个已经创建的项目。我正在添加Firebase和onesignal。已经添加了firebase,但是当我尝试添加此行时出现错误: implementation 'com.onesignal
我正在尝试在 Windows 系统上的两个 chrome(版本 20.0.1132.57)窗口之间创建对等连接。我将我的应用程序托管在 Linux 计算机上的 Node.js 服务器上并使用 sock
我正在使用 @nuxtjs/pwa 和 @nuxtjs/onesignal。我在安装时遇到 subscriptionChange 事件的监听器问题。它与 localhost 一起工作得很好,该问题发生
我制作了一个 ios 应用程序,并向我的应用程序添加了一个信号,我通过手机测试了我的应用程序,它运行良好,但我将我的应用程序上传到应用程序商店,通知不起作用。 onesignal 给我这个问题“One
我试图使用 REST API 取消我发送给也使用 API 的单个用户的未决通知(使用 include_player_ids 和单个收件人),但是如果没有传递 REST API KEY,这不应该发生,因
我需要为某些网站实现网络通知,并通过在控制台中执行的 php 脚本发送通知。 我发现通过使用这个库 https://github.com/web-push-libs/web-push-php 可以在不
我有这个应用程序,我想从我的管理面板发送推送通知。我认为我做的一切都很好,但是 OneSignal 仅在我将其安装在我的模拟器中时才会检测到我的应用程序已安装,但是当我在手机上安装 apk 时,它不会
我想在 oneSignal 中创建 Segments 而不必访问仪表板,所以我想知道他们是否有一个 API 用于或任何 和我一起做的其他方式 最佳答案 目前 OneSignal 没有任何用于创建段的
我想发送OneSignal的预定消息,但是我不想使用他们的仪表板,而是想使用API来做到这一点,我确实阅读了他们的文档,但是找不到任何可以修改其当前API的东西,所以我可以发送预定的通知 func
我对应用程序开发、Java 和 StackOverflow 完全陌生,这是我的第一个 Android 应用程序。 我已经实现了 OneSignal 来发送推送通知。我只是想在通知中添加对操作按钮的支持
我希望我的通知仅显示在通知栏中。当应用程序打开时,它将作为模式显示在屏幕上。 在官方文档中我找不到任何可以帮助我解决这个问题的内容。我想知道是否应该查找文档的其他部分,或者是否应该更改我的应用程序。
我们在 OneSignal 中使用新的 iOS 严重警报功能时遇到问题。我们拥有的应用程序是使用 Apache Flex 构建的,并且推送通知有效负载正在通过 Distriqt ANE 编译/生成并通
基于 this guide ,我尝试将我现有的 Android 应用程序与 OneSignal 集成。我将 OneSignal 代码放在 MainActivity.java 中: protected
我想知道我是否可以使用标签而不是 included_segments 为 OneSignal 中的特定用户发送通知 我想发送通知到特定的标签,而无需创建分割并根据他们过滤用户 $fields = ar
我是一名优秀的程序员,十分优秀!