问题标签 [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.

0 投票
1 回答
1115 浏览

ios - didReceiveNotificationRequest:withContentHandler - 执行时间限制?

UNNotificationServiceExtension有一种 didReceiveNotificationRequest:withContentHandler处理通知更改的方法。

关于超时时间,它有一个非常模棱两可的描述:

该方法执行其任务和执行提供的完成块的时间有限。如果您的方法没有及时完成,

这是serviceExtensionTimeWillExpire方法的描述:

如果您的 didReceiveNotificationRequest:withContentHandler: 方法需要很长时间才能执行其完成块,则系统会在单独的线程上调用此方法,以给您最后一次执行该块的机会。

我不完全明白,“渴望执行”是什么意思。有没有量化数据?它是否因运行的设备等而异?

谢谢!

0 投票
1 回答
1048 浏览

ios - UNNotificationServiceExtension 偶尔无法更新通知

我有一个UNNotificationServiceExtension用 Swift 写的。它所做的一切:

  • 设置通知标题
  • 设置通知正文
  • 加载图像并调用contentHandler ()

这是我在做什么的简短版本:

95% 的情况下 - 它工作得很好。但是,有时通知到达时没有任何更改(即标题、正文保持不变,没有附加图像)。

我知道:

  • 这不是超时:serviceExtensionTimeWillExpire没有被调用
  • 它看起来不像UNNotificationServiceExtension崩溃:我添加了大量NSLog()调用来检查设备日志 -self.contentHandler!(self.bestAttemptContent!)触发
  • 它更经常发生在我的 iPhone 上而不是 iPad 上
  • 我在设备日志中没有找到任何关于这个问题的线索

有人遇到过这个问题吗?任何解决方法?想法?

0 投票
3 回答
2793 浏览

ios - 如何在 iOS 10 之前使用 UNNotificationServiceExtension 运行应用程序?

我的应用程序实现了新的 iOS 10 富推送 NotificationService 扩展。

在 iOS 10 上一切正常,但我也想支持 iOS 10 之前的设备——当然不是富推送,而只是普通推送。当将 Xcode 中的部署目标降低到例如 8.0 或 9.0 并尝试在较旧的模拟器或设备上运行时,我收到以下错误:

我找不到 Apple 官方提供的任何内容,说明您的应用程序只有在添加服务扩展后才能在 iOS 10+ 上运行 - 有人可以确认吗?

0 投票
1 回答
615 浏览

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 的错误,或者这是“正常行为”?

0 投票
4 回答
5154 浏览

swift - 本地通知的通知服务扩展

didReceive(_:withContentHandler:)系统会在 iOS 10 中加载通知服务扩展并调用它来获取本地通知吗?如果是的话,我们怎么能做到这一点?

0 投票
1 回答
1491 浏览

ios - iOS:如何从应用程序的 UNNotificationServiceExtension 内部访问已保存的数据?

有没有办法从它的 Notification-Service-Extension 实例中获取保存在 iOS 应用程序沙箱中的数据?我想在传递 contenhandler 之前从数据库中获取一些数据。

我从内部测试

对我来说,看起来扩展程序有自己的沙箱和自己的文档文件夹。

该应用程序使用文件夹“Application”,而扩展程序使用文件夹“PluginKitPlugin”,两者都在“/var/mobile/Containers/Data/”内。

更新:似乎无法访问应用程序沙箱容器。

0 投票
2 回答
11695 浏览

ios - 通知服务扩展不起作用

当我使用推送有效负载发送时,通知没有显示,mutable-content:1它也没有命中通知服务扩展内的断点,虽然没有显示可变内容推送,但通知内容扩展也工作正常。我没有修改通知服务扩展中的代码,它是 Xcode 生成的默认代码。创建通知服务扩展时我是否遗漏了某些内容,或者可能是设备设置的问题?几天前我在同一台设备上进行了测试,通知服务扩展工作正常。

以下是我的服务扩展代码

编辑1:下面是我的推送有效载荷

编辑1:问题似乎在运行在 10.2.1 上的特定设备上,我检查了在 10.2 上运行的其他设备,它触发了通知服务扩展。

0 投票
2 回答
435 浏览

push-notification - iOS10通知服务扩展中payload的userInfo不能修改或添加或删除

在通知服务延期的短时间内

我可以修改除 userInfo 之外的UNMutableNotificationContent属性。获取userInfo字典的可变副本并对其进行更改和重新设置是行不通的。

0 投票
1 回答
843 浏览

ios - UNNotificationServiceExtension 中的附件文件 URL 无效

我写了一个UNNotificationServiceExtension我试图下载文件并附加它的地方。每次我跑步我都会得到一个例外说

附件文件 URL 无效。

我一生都无法弄清楚为什么会失败。

0 投票
1 回答
1702 浏览

ios - 如何从 NotificationServiceExtension 将远程通知数据保存到核心数据(数据库)中

我已经在我的目标应用程序中实现了NotificationServiceExtension,它工作正常。

  • 创建的 AppgroupID

    在应用程序后台模式下,我正在获取存储在上述 NotificationServiceExtension 方法中的数据,在我的结果中,我可以从 manageObject 表(messageInfo)中获取数据,但没有任何数据进入关系“let setArray = rosterInfo?.toMessageInfo”

    任何人的帮助?