- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 UNNotificationAction 创建本地通知的通知服务扩展,但点击它代表不会被调用。
userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void)
这是我的 3 个行动
// Define Actions
let actionReadLater = UNNotificationAction(identifier: Notification.Action.readLater, title: "Read Later", options: [])
let actionShowDetails = UNNotificationAction(identifier: Notification.Action.showDetails, title: "Show Details", options: [.foreground])
let actionUnsubscribe = UNNotificationAction(identifier: Notification.Action.unsubscribe, title: "Unsubscribe", options: [.destructive, .authenticationRequired])
// Define Category
let tutorialCategory = UNNotificationCategory(identifier: Notification.Category.tutorial, actions: [actionReadLater, actionShowDetails, actionUnsubscribe], intentIdentifiers: [], options: [])
// Register Category
UNUserNotificationCenter.current().setNotificationCategories([tutorialCategory])
安排我正在使用的通知
private func scheduleLocalNotification() {
// Create Notification Content
let notificationContent = UNMutableNotificationContent()
// Configure Notification Content
notificationContent.title = "Cocoacasts"
notificationContent.subtitle = "Local Notifications"
notificationContent.body = "In this tutorial, you learn how to schedule local notifications with the User Notifications framework."
notificationContent.userInfo = ["customNumber": 100]
// Set Category Identifier
notificationContent.categoryIdentifier = Notification.Category.tutorial
// Add Trigger
let notificationTrigger = UNTimeIntervalNotificationTrigger(timeInterval: 10.0, repeats: false)
// Create Notification Request
let notificationRequest = UNNotificationRequest(identifier: "exampleNotification", content: notificationContent, trigger: notificationTrigger)
// Add Request to User Notification Center
UNUserNotificationCenter.current().add(notificationRequest) { (error) in
if let error = error {
print("Unable to Add Notification Request (\(error), \(error.localizedDescription))")
}
}
}
我的扩展程序正在显示,但操作没有被触发,并且没有扩展程序操作也可以正常工作。
最佳答案
尝试类似的事情:
class NotificationViewController: UIViewController, UNNotificationContentExtension {
@IBOutlet var label: UILabel?
override func viewDidLoad() {
super.viewDidLoad()
// Do any required interface initialization here.
preferredContentSize = CGSize.init(width: self.view.bounds.width / 2, height: self.view.bounds.height / 5)
}
func didReceive(_ notification: UNNotification) {
self.label?.text = "Extension"
}
// Implement this method
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {
if response.notification.request.content.categoryIdentifier == "yourCategory" {
switch response.actionIdentifier {
case "first":
// Do something
completion(.dismissAndForwardAction)
case "second":
// Do something
completion(.dismissAndForwardAction)
default:
break;
}
}
}
}
您应该实现 UNNotificationContentExtension
的方法:
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void) {}
在此 block 内,您可以检查您的操作。希望对您有所帮助。
关于swift - UserNotifications 扩展服务 UNNotificationAction didReceive 操作委托(delegate)未被调用。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48970969/
我正在尝试使用新的 UserNotifications 框架进行本地通知。单击/打开通知时,我将用户重定向到不同的 View Controller 。 UNUserNotificationCenter
我的 AppDelegate 中有这个: @available(iOS 10.0, *) func didReceive(_ request: UNNotificationRequest,
这是我的代码的一部分。我想使用 UNUserNotificationCenter 和 UNUserNotificationCenterDelegate 来处理通知事件。 当应用程序处于前台状态时,此代
为了获得丰富的推送通知,我一步步前进。他们在这里: 使用 plist 创建通知服务扩展: NotificationService didRecieve : override func didRecei
以下是我的代码。我正在尝试使用 didReceive 质询方法进行身份验证。 Apple 文档说,如果 session 任务需要身份验证,并且没有可用的有效凭据,则会调用“didReceive cha
当我发送推送通知时,应用程序在前台 willPresent 被调用。 didReceive 永远不会被调用。当应用程序在后台并收到推送通知时,会显示警报,但应用程序不会调用 didReceive 或
我正在尝试从 userNotificationCenter(_:didReceive:withCompletionHandler:) 中检索原始通知内容在 watchOS 中。从 APNS 发送推送通
我已经为 ios10 实现了推送通知。点击通知警报将触发“didReceive”委托(delegate),如果我将通知保存在核心数据中,或者如果我在前台则为静默通知。问题是如果我在后台收到一堆通知并且
我正在使用 func xmppStream(_ sender: XMPPStream, didReceive presence: XMPPPresence) 来管理在线离线状态。这个功能对于一对一用户
我正在处理本地通知,但我遇到的问题是当应用程序终止时没有调用 didReceive Response 方法,所以当我点击通知操作时它只是启动应用程序而没有做任何其他事情。但是,当该应用程序仅在后台运行
我想禁用在特殊情况下向用户发送推送通知。我在 userDefault 中保存了我的第一个推送,在第二个中我检查它是否相同。当我调试它时输入返回而不是继续,但我仍然收到推送通知。从 firebase a
我有一个 LocalNotification 类,其中实现了 UserNotifications。我在我需要展示的初始 ViewController 和 CheckViewController 之间创
将文件从 iPhone 传输到 Apple Watch 后出现错误 Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"
static let didReceiveResponseSelector : Selector = #selector((NSURLConnectionDataDelegate.connection
我的 TableView 单元格中有一个 Admob 横幅。一切似乎都正常,但是当我尝试让 func adViewDidReceiveAd(_bannerView: GADBannerView!) 正
因此,我一直在此处和其他地方阅读有关此主题的其他帖子,但我仍在挣扎。我的应用正在使用 “Fireabase FCM” 执行设备到设备的通知。我能够发送和接收消息。然而,方法“didReceive Re
我已经知道这段代码可以在 iOS 10 之前使用: func application(_ application: UIApplication, didReceive notification: UI
我有一个正常工作的应用程序,它的通知显示效果很好。现在我想处理一些通知事件,比如当用户点击横幅时。 我的 iOS 部署目标是 11.0,与我的部署目标相同。 我在 AppDelegate.swift
我想添加一个进度条以准确了解我的视频上传的百分比,但无法调用 didCompleteWithError、didReceive 响应、didSendBodyData bytesSent:Int64、to
我创建了一个背景URLSession使用以下代码的对象: let identifier = /* some background identifier */ let config = URLSessi
我是一名优秀的程序员,十分优秀!