我在我的演示应用中实现了Extension Notification Service
和Notification Content Extension
,它的工作非常好。
现在,我必须在我的框架中实现它。意味着我正在研究动态框架,它像聊天应用程序一样支持。在框架所有屏幕都是以编程方式创建的,它不包含任何故事板或XIB。
我为Notification Service Extension
和Notification Content Extension
设置了所有必需的配置,就像我在框架中的演示应用程序一样。根据我的双重检查,一切都是一样的。
我正在努力实施Notification Service Extension
和Notification Content Extension
。
我是否需要以编程方式而不是故事板创建Notification Content
?
我是否需要添加目标依赖项?
我缺少什么?
在拖动通知时,它不会向我显示通知内容。
以下是我目前用于本地测试通知的代码。此代码适用于演示应用程序。
@available(iOS 10.0, *)
func scheduleNotification() {
UNUserNotificationCenter.current().delegate = self
let content = UNMutableNotificationContent()
content.title = "Notification"
content.body = "We will remind you that your notification demo is performed well."
content.sound = UNNotificationSound.default()
content.categoryIdentifier = "myNotificationCategory"
content.userInfo = ["Image" as AnyHashable: "https://codepo8.github.io/canvas-images-and-pixels/img/horse.png"]
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: "request", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
if error != nil {
print("Error to add notification: \(error!.localizedDescription)")
} else {
print("Notification added")
}
}
}
我也是通过调试测试它,但didReceive(_ notification: UNNotification)
也没有调用。
我被困住了!请帮我?将不胜感激。
答案 0 :(得分:1)
对于您要添加到您的私有框架中的Notification Service Extension
和Notification Content Extension
,我很理解。因此,您的框架包含sharedInstance
,这就是为什么您不能在框架中实现这两个扩展的原因,因为它们不允许这样做。
因此,有一种解决方案可以创建一个小的框架,其中包含与两个扩展方法有关的代码,该方法将是类方法。它包含填充通知服务的代码。
创建一个新的小型框架,其中包含与Notification Content Extension
和Notification Service Extension
相关的类方法和代码。
将此框架与您的私有框架一起添加到您的应用程序中。
在应用程序内部添加Notification Content Extension
和Notification Service Extension
目标并实现所需的方法,将应用程序中的相关方法调用到通知框架中。
您将使用此解决方案,但还需要在应用程序中添加一个框架