问题标签 [serviceextension]
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 - didReceiveNotificationRequest:withContentHandler - 执行时间限制?
UNNotificationServiceExtension
有一种 didReceiveNotificationRequest:withContentHandler
处理通知更改的方法。
关于超时时间,它有一个非常模棱两可的描述:
该方法执行其任务和执行提供的完成块的时间有限。如果您的方法没有及时完成,
这是serviceExtensionTimeWillExpire
方法的描述:
如果您的 didReceiveNotificationRequest:withContentHandler: 方法需要很长时间才能执行其完成块,则系统会在单独的线程上调用此方法,以给您最后一次执行该块的机会。
我不完全明白,“渴望执行”是什么意思。有没有量化数据?它是否因运行的设备等而异?
谢谢!
ios - UNNotificationServiceExtension 偶尔无法更新通知
我有一个UNNotificationServiceExtension
用 Swift 写的。它所做的一切:
- 设置通知标题
- 设置通知正文
- 加载图像并调用
contentHandler ()
这是我在做什么的简短版本:
在95% 的情况下 - 它工作得很好。但是,有时通知到达时没有任何更改(即标题、正文保持不变,没有附加图像)。
我知道:
- 这不是超时:
serviceExtensionTimeWillExpire
没有被调用 - 它看起来不像
UNNotificationServiceExtension
崩溃:我添加了大量NSLog()
调用来检查设备日志 -self.contentHandler!(self.bestAttemptContent!)
触发 - 它更经常发生在我的 iPhone 上而不是 iPad 上
- 我在设备日志中没有找到任何关于这个问题的线索
有人遇到过这个问题吗?任何解决方法?想法?
ios - 如何在 iOS 10 之前使用 UNNotificationServiceExtension 运行应用程序?
我的应用程序实现了新的 iOS 10 富推送 NotificationService 扩展。
在 iOS 10 上一切正常,但我也想支持 iOS 10 之前的设备——当然不是富推送,而只是普通推送。当将 Xcode 中的部署目标降低到例如 8.0 或 9.0 并尝试在较旧的模拟器或设备上运行时,我收到以下错误:
我找不到 Apple 官方提供的任何内容,说明您的应用程序只有在添加服务扩展后才能在 iOS 10+ 上运行 - 有人可以确认吗?
ios - iOS 10 服务扩展不一致
虽然这里与另一个问题有相似之处: iOS 10 don't call Notification Service Extension
我希望就具体的不当行为提供一个更具体的问题。考虑以下推送有效负载:
(“服务警报”字典用于测试支持它的设备的默认警报文本的覆盖)
我正在我的 iOS 10 设备(iPhone 6+)上的 Xcode 中进行调试,我在服务扩展中设置了一个断点,以验证它是否有机会在呈现之前修改推送。
当我发送推送时,有时会命中服务扩展(断点命中),我可以验证推送有效负载是否正确,并且显示的推送仅显示默认的“aps”有效负载。没有图像。没有修改的标题/副标题/正文。
我的断点serviceExtensionTimeWillExpire
没有命中。通知机制似乎正在“工作”,但结果不正确。
当我再次发送完全相同的推送时,它可以工作。
图像从“图像” URL 加载,修改后的“服务警报”文本按设计显示。有时我必须发送相同的推送 2 或 3 次才能正常工作,但之后似乎是一致的。因此,如果我看到一次修改后的通知,那么从那时起,每个推送测试似乎都可以正常工作。
我觉得,但还没有确凿的数据支持,一段时间的不活动会导致服务扩展被刷新,并且在被调用时唤醒太慢。如果是这样,这将使它毫无用处,因为收到推送时它永远不会完全清醒。
当前环境:
- Xcode 8.2 测试版 (8C30a)
- iOS 10.2 测试版 2、3 和 4
- 调试方案
任何人都可以在 iOS 10 测试版和/或非测试版上确认/否认这种行为吗?我是否发现了 10.2 的错误,或者这是“正常行为”?
swift - 本地通知的通知服务扩展
didReceive(_:withContentHandler:)
系统会在 iOS 10 中加载通知服务扩展并调用它来获取本地通知吗?如果是的话,我们怎么能做到这一点?
ios - iOS:如何从应用程序的 UNNotificationServiceExtension 内部访问已保存的数据?
有没有办法从它的 Notification-Service-Extension 实例中获取保存在 iOS 应用程序沙箱中的数据?我想在传递 contenhandler 之前从数据库中获取一些数据。
我从内部测试
对我来说,看起来扩展程序有自己的沙箱和自己的文档文件夹。
该应用程序使用文件夹“Application”,而扩展程序使用文件夹“PluginKitPlugin”,两者都在“/var/mobile/Containers/Data/”内。
更新:似乎无法访问应用程序沙箱容器。
ios - 通知服务扩展不起作用
当我使用推送有效负载发送时,通知没有显示,mutable-content:1
它也没有命中通知服务扩展内的断点,虽然没有显示可变内容推送,但通知内容扩展也工作正常。我没有修改通知服务扩展中的代码,它是 Xcode 生成的默认代码。创建通知服务扩展时我是否遗漏了某些内容,或者可能是设备设置的问题?几天前我在同一台设备上进行了测试,通知服务扩展工作正常。
以下是我的服务扩展代码
编辑1:下面是我的推送有效载荷
编辑1:问题似乎在运行在 10.2.1 上的特定设备上,我检查了在 10.2 上运行的其他设备,它触发了通知服务扩展。
push-notification - iOS10通知服务扩展中payload的userInfo不能修改或添加或删除
在通知服务延期的短时间内
我可以修改除 userInfo 之外的UNMutableNotificationContent属性。获取userInfo字典的可变副本并对其进行更改和重新设置是行不通的。
ios - UNNotificationServiceExtension 中的附件文件 URL 无效
我写了一个UNNotificationServiceExtension
我试图下载文件并附加它的地方。每次我跑步我都会得到一个例外说
附件文件 URL 无效。
我一生都无法弄清楚为什么会失败。
ios - 如何从 NotificationServiceExtension 将远程通知数据保存到核心数据(数据库)中
我已经在我的目标应用程序中实现了NotificationServiceExtension,它工作正常。
创建的 AppgroupID
在应用程序后台模式下,我正在获取存储在上述 NotificationServiceExtension 方法中的数据,在我的结果中,我可以从 manageObject 表(messageInfo)中获取数据,但没有任何数据进入关系“let setArray = rosterInfo?.toMessageInfo”
任何人的帮助?