问题标签 [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.
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”
非常感谢任何帮助或指导!
提前致谢 ;-)
ios - 领域死锁条件
实际上,在我的应用程序中,我从他们更新共享组文件夹中的领域数据库中获得了通知服务扩展,并且主应用程序也写入相同的内容。
有时我的应用程序由于出现死锁而停止工作,并且应用程序总是无法写入。应用程序在主应用程序初始化过程中有数据库编写代码。所以只有手机重启才能让用户摆脱问题。
这是我的通知扩展代码
来自 didReceive(_ request: contentHandler:) 的 updateInTime 函数调用
境界版:
3.10.0
这是来自设备的崩溃日志信息
我该如何解决这个问题。
ios - iOS SpringBoard 不加载通知服务扩展
我正在发送定期推送通知,并希望它由 iOS13 上的通知服务扩展更新。但这不会发生,我只看到原始通知。控制台日志包含:
最糟糕的是,如果我多次重新安装该应用程序,此问题就会消失,并且通知服务扩展开始按预期工作。但是在下一次重新安装应用程序后的任何其他时间点,它都可能再次开始失败。
任何想法这里出了什么问题?
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)?谢谢!
ios - NotificationService Extension 返回与 App 目标不同的语言环境
我正在尝试在应用程序和 NotificationService 扩展中获取我当前的语言环境。代码如下所示:
let locale = Locale.current.identifier
在应用程序目标中,语言环境是de_DE
,在 NotificationService 扩展中,它会评估en_DE
导致不良行为的结果。我错过了什么吗?
ios - 通知服务扩展 - 隐藏以前的通知
举个例子,一个只以这种格式显示通知的消息应用程序:You have X new messages
当用户收到消息时,应用程序将显示通知:You have 1 new message
当它收到第二条消息时,将显示一条新通知:You have 2 new messages
理想情况下,在收到第二个通知后,应该取消/隐藏第一个通知,因为用户只有 2 条新消息,而不是 1 + 2 条。
如果使用UserNotifications在本地显示通知,要解决此问题,您只需在UNNotificationRequest
为两个通知创建 时使用相同的标识符。
使用通知服务应用程序扩展时有没有办法实现相同的目标?
ios - iOS 中的推送通知服务扩展未执行
因此,我根据此处提到的指南在 Xamarin 表单中创建了一个 iOS 通知服务扩展 [ https://docs.microsoft.com/en-us/xamarin/ios/platform/user-notifications/enhanced-user-notifications?tabs =窗口][1]
这是我的扩展代码,和上面的例子完全一样
但是我无法调试通知有效负载,也无法接收通知,正在注册,所以我假设我的配置是正确的,但服务扩展无法运行
我是否遗漏了什么,任何输入都会有所帮助,仅供参考,我正在为此使用 Azure 通知中心
ios - iOS应用程序被杀死时处理程序不能显示远程通知吗?
我的要求是防止显示远程通知。
如果应用程序位于前台或后台,我可以通过以下方法处理此问题:
当应用程序被杀死时,我正在尝试处理UNNotificationServiceExtension中的逻辑,但它不起作用:
我读过这篇文章:是否可以阻止显示远程通知? 它说Apple不允许这样做,这是正确的吗?
xcode - 在模拟器中测试丰富的通知
我能够在模拟器中测试正常的通知,但是当我尝试测试丰富的通知时没有任何反应,事件标题没有得到更新。
你能帮我吗,如何进行。我需要更改任何模拟器设置吗?我正在使用 Xcode 11.4
样本有效载荷:
NotificationService 扩展方法: