当我点击来自通知中心的本地通知时,我想阻止它打开我的应用程序,即当点击通知时,除了清除它之外不会发生任何事情。知道怎么做吗?
答案 0 :(得分:1)
肯定Apple会拒绝此类应用。
但是如果你想做这样的事情,你可以做以下事情,但这会打开app。
在- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
中,有以下内容。
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
//home button press programmatically
UIApplication *app = [UIApplication sharedApplication];
[app performSelector:@selector(suspend)];
//exit app when app is in background
exit(0);
}
简而言之,在从推送中打开应用时,请终止应用。
答案 1 :(得分:0)
我知道这篇文章很老,但是我在试图弄清楚自己如何做的时候发现了这篇文章。我想我会更新,以防其他人遇到它。
当挑战之一要求您从通知中设置“稍后提醒我”选项时,我正在研究Project 21 Hacking with Swift。显然,在这种情况下打开应用程序是没有用的,因此我也试图弄清楚。
这是我发现的方法实际上很简单。注册类别时,只需删除一段代码即可。
例如:
func registerCateories() {
let center = UNUserNotificationCenter.current()
center.delegate = self // Any messages get sent back to us
let show = UNNotificationAction(identifier: "show", title: "Tell me more", options: .foreground)
let remindMeLater = UNNotificationAction(identifier: "remindMeLater", title: "Remind me later...")
let category = UNNotificationCategory(identifier: "alarm", actions: [show, remindMeLater], intentIdentifiers: [], options: [])
center.setNotificationCategories([category])
}
您可以从本地通知中选择的两个选项是show
和remindMeLater
。请注意,show
有options: .forground
。这就是迫使您的应用在单击时打开的原因。删除它(例如在remindMeLater
中),就可以解决您的问题!
稍后在代码中,您可以基于response.actionIdentifier
函数中的userNotificationCenter
调用其他函数,以使水龙头实际执行某些操作。
希望这会有所帮助!