问题标签 [unnotificationserviceextension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1867 浏览

ios - 无法从 UNNotificationServiceExtension 中安排任务 - 错误:BGTaskSchedulerErrorDomain 错误 1



正如标题所述,我目前无法从 UNNotificationServiceExtension 中安排任务。我想在调用以下函数并因此收到推送时安排任务:

func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void)

目前,只要我打电话:

try BGTaskScheduler.shared.submit(request)

输入 catch 子句并返回以下错误:'操作无法完成。(BGTaskSchedulerErrorDomain 错误 1。)'

推送消息通过以下 url 与 Firebase 云消息一起发送,并在我的应用程序中完美接收:https ://fcm.googleapis.com/v1/ {path to project}。我从 POSTMAN 中调用这个 url。我还指定了访问令牌和 json 正文。

推送消息中的 apns 标头设置为“apns-push-type”:“background”。并且payload.aps具有以下值:“apns-priority”:“5”,“content-available”:1,“mutable-content”:1。我认为这一切正常,因为我验证了这一点。

奇怪的是,我确实让后台任务从实际应用程序中工作,所以没有从 UNNotificationServiceExtension 中触发它。我试过这个来检查代码是否真的有效。

我已经完成了我的研究,到目前为止我已经尝试了以下方法:
1.我确保 info.plist 中的“允许的后台任务调度程序标识符”填充了正确的任务标识符。我已经三次检查了这个字符串在代码中的使用是否正确。
2.在应用程序中启用了以下功能:“后台获取”、“远程通知”、“后台处理”。
3.在 info.plist 中支持以下 UIBackgroundModes:'audio'、'fetch'、'processing'、'remote-notification' 和 'voip'。这些相同的 UIBackgroundModes 也被输入到 UNNotificationServiceExtension info.plist 中(我这样做只是为了确定)。
4.我确保任务在“didFinishLaunchingWithOptions”的 AppDelegate 中注册
5.每次实际触发任务时,我都会调用“expirationHandler”和“setTaskCompleted”

非常感谢任何帮助或指导!
提前致谢 ;-)

0 投票
0 回答
233 浏览

ios - 领域死锁条件

实际上,在我的应用程序中,我从他们更新共享组文件夹中的领域数据库中获得了通知服务扩展,并且主应用程序也写入相同的内容。

有时我的应用程序由于出现死锁而停止工作,并且应用程序总是无法写入。应用程序在主应用程序初始化过程中有数据库编写代码。所以只有手机重启才能让用户摆脱问题。

这是我的通知扩展代码

来自 didReceive(_ request: contentHandler:) 的 updateInTime 函数调用

境界版:

3.10.0

这是来自设备的崩溃日志信息

我该如何解决这个问题。

0 投票
2 回答
395 浏览

ios - iOS SpringBoard 不加载通知服务扩展

我正在发送定期推送通知,并希望它由 iOS13 上的通知服务扩展更新。但这不会发生,我只看到原始通知。控制台日志包含:

最糟糕的是,如果我多次重新安装该应用程序,此问题就会消失,并且通知服务扩展开始按预期工作。但是在下一次重新安装应用程序后的任何其他时间点,它都可能再次开始失败。

任何想法这里出了什么问题?

0 投票
1 回答
90 浏览

ios - 通知服务扩展无法通过 api.sandbox.push.apple.com 进入设备

我在 iOS 13 上遇到了通知服务扩展问题。这个问题并不总是发生。当我在开发苹果服务器 (api.sandbox.push.apple.com:443) 上推送可变内容 = 1 的通知时,Apple 在我的服务器上返回成功,但没有通知到达我的设备。有时它仍然会出现,但很晚,例如我在上午 9:00 推送它,它在上午 9:15 到达我的设备,并准确显示时间(15 分钟前)。这是苹果的错误还是我的错误?如果这是我的错误,我该如何解决?如果是 Apple 的错误,它会发生在真实服务器上吗(api.push.apple.com:443)?谢谢!

0 投票
1 回答
678 浏览

ios - 离子 ios 推送通知中不显示图像

我被困在 ionic4 的 ios 推送通知中显示图像。我没有找到问题所在。我尝试了通知服务扩展和内容扩展。但通知中没有显示静止图像。它在 Android 中运行完美。

这是notificationService.swift文件:

这是notificationViewController.swift文件:

这是内容扩展的 info.plist。

在此处输入图像描述

这是我的通知有效负载:

{

请帮助我..,提前谢谢你。

0 投票
0 回答
56 浏览

ios - NotificationService Extension 返回与 App 目标不同的语言环境

我正在尝试在应用程序和 NotificationService 扩展中获取我当前的语言环境。代码如下所示:

let locale = Locale.current.identifier

在应用程序目标中,语言环境是de_DE,在 NotificationService 扩展中,它会评估en_DE导致不良行为的结果。我错过了什么吗?

0 投票
1 回答
792 浏览

ios - 通知服务扩展 - 隐藏以前的通知

举个例子,一个只以这种格式显示通知的消息应用程序:You have X new messages

当用户收到消息时,应用程序将显示通知:You have 1 new message

当它收到第二条消息时,将显示一条新通知:You have 2 new messages

理想情况下,在收到第二个通知后,应该取消/隐藏第一个通知,因为用户只有 2 条新消息,而不是 1 + 2 条。

如果使用UserNotifications在本地显示通知,要解决此问题,您只需在UNNotificationRequest为两个通知创建 时使用相同的标识符。

使用通知服务应用程序扩展时有没有办法实现相同的目标?

0 投票
1 回答
1038 浏览

ios - iOS 中的推送通知服务扩展未执行

因此,我根据此处提到的指南在 Xamarin 表单中创建了一个 iOS 通知服务扩展 [ https://docs.microsoft.com/en-us/xamarin/ios/platform/user-notifications/enhanced-user-notifications?tabs =窗口][1]

这是我的扩展代码,和上面的例子完全一样

但是我无法调试通知有效负载,也无法接收通知,正在注册,所以我假设我的配置是正确的,但服务扩展无法运行

我是否遗漏了什么,任何输入都会有所帮助,仅供参考,我正在为此使用 Azure 通知中心

0 投票
2 回答
296 浏览

ios - iOS应用程序被杀死时处理程序不能显示远程通知吗?

我的要求是防止显示远程通知。
如果应用程序位于前台或后台,我可以通过以下方法处理此问题:

当应用程序被杀死时,我正在尝试处理UNNotificationServiceExtension中的逻辑,但它不起作用:

我读过这篇文章:是否可以阻止显示远程通知? 它说Apple不允许这样做,这是正确的吗?

0 投票
1 回答
1507 浏览

xcode - 在模拟器中测试丰富的通知

我能够在模拟器中测试正常的通知,但是当我尝试测试丰富的通知时没有任何反应,事件标题没有得到更新。

你能帮我吗,如何进行。我需要更改任何模拟器设置吗?我正在使用 Xcode 11.4

样本有效载荷:

NotificationService 扩展方法: