在 iOS 中单击本地通知时不打开应用程序
Do not open the app when a local notification is clicked in iOS
当我点击来自通知中心的本地通知时,我想阻止它打开我的应用程序,即当点击通知时,除了清除它之外什么都不应该发生。知道怎么做吗?
苹果肯定会拒绝这样的应用程序。
但是如果你想做这样的事情,下面是你可以做的,但这会打开应用程序。
在- (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);
}
简而言之,从推送打开应用程序时,终止应用程序。
我知道这个 post 很旧,但我在尝试自己弄清楚如何执行此操作时发现了这个。我想我会更新以防其他人 运行 加入其中。
我正在研究 Project 21 Hacking With Swift,当时其中一项挑战要求您从通知中设置 "Remind Me Later" 选项。很明显,这种情况下打开app是没有用的,所以我也想办法了。
这是我发现的方法,其实很简单。您只需在注册类别时删除一段代码。
例如:
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
中的那样)并解决您的问题!
稍后在您的代码中,您可以根据 userNotificationCenter
函数中的 response.actionIdentifier
调用不同的函数,以使水龙头实际执行某些操作。
希望对您有所帮助!
当我点击来自通知中心的本地通知时,我想阻止它打开我的应用程序,即当点击通知时,除了清除它之外什么都不应该发生。知道怎么做吗?
苹果肯定会拒绝这样的应用程序。
但是如果你想做这样的事情,下面是你可以做的,但这会打开应用程序。
在- (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);
}
简而言之,从推送打开应用程序时,终止应用程序。
我知道这个 post 很旧,但我在尝试自己弄清楚如何执行此操作时发现了这个。我想我会更新以防其他人 运行 加入其中。
我正在研究 Project 21 Hacking With Swift,当时其中一项挑战要求您从通知中设置 "Remind Me Later" 选项。很明显,这种情况下打开app是没有用的,所以我也想办法了。
这是我发现的方法,其实很简单。您只需在注册类别时删除一段代码。
例如:
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
中的那样)并解决您的问题!
稍后在您的代码中,您可以根据 userNotificationCenter
函数中的 response.actionIdentifier
调用不同的函数,以使水龙头实际执行某些操作。
希望对您有所帮助!