Tag: unusernotificationcenter

iOS从本地通知打开页面

我目前使用UNUserNotificationCenter在OS10的指定时间发出本地通知。 我试图找出当用户点击本地通知时如何在我的应用程序中打开特定的页面。 任何人如何做到这一点我真的很新,在C#编程的iOS,我敢肯定它并不罕见的事情要做。

如何响应UNUserNotification的点击?

我在iOS 10中使用了新的UNUserNotification框架。我可以看到如何添加动作button,但是当用户点击通知本身时该如何响应呢? 就我而言,这将是一个带有一些文字的图像。 默认行为是应用程序打开。 我可以使用自定义代码来检测我的应用程序是否由于UNUserNotification而被打开,理想情况下是使用关于通知的标识符信息? 这些工作,如果我的应用程序在后台运行或closures? UNUserNotification文档build议设置UNUserNotification的代表,但我认为这只适用于应用程序正在运行。

操作button不会出现在通知iOS 10中

我在我的应用程序中使用本地推送通知。 当在iOS 10中添加通知的操作button时,它不会显示在通知下方。 通知正在出现,但通知底部的操作button已丢失。 appdelegate代码如下。 import UIKit import CoreData import UserNotifications @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound]) {(accepted, error) in if !accepted { print("Notification access denied.") } } let action […]

当iOS 10中的UNUserNotificationCenterDelegate新通知到达时,如何删除先前发送的通知?

这个问题是关于iOS 10中新的UserNotifications框架。 我有一个应用程序,在用户在应用程序中执行特定操作后每半小时安排一次本地通知,从1小时开始。 为了避免混淆用户的locking屏幕或通知中心,我只需要一次显示一条通知,因此只有一条通知包含最新的相关信息。 我的计划是在每次发布新通知时清除所有已发送的通知。 看来这应该是可能的UNUserNotificationCenterDelegate新的willPresent方法,但它不像我所期望的那样。 这里有一个function,我打电话来设置所有的通知,从应用程序中的事件后1小时开始,每半小时安排一次通知,直到事件发生后23.5小时的最后一个通知: func updateNotifications() { for hour in 1…23 { scheduleNotification(withOffsetInHours: Double(hour)) scheduleNotification(withOffsetInHours: Double(hour) + 0.5) } } 这是实际上根据mostRecentEventDate (这是在别处设置的Date安排通知的函数: func scheduleNotification(withOffsetInHours: Double) { // set up a Date for when the notification should fire let offsetInSeconds = 60 * 60 * withOffsetInHours let offsetFireDate = mostRecentEventDate.addingTimeInterval(offsetInSeconds) // set up […]

本地通知不会在ios10中触发

我正在使用UNUserNotificationCenter的ios 10.为了testing,我设置了从当前时间10秒的本地通知。 这是我试过的, – (void)viewDidLoad { [super viewDidLoad]; UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) { if (!error) { NSLog(@"request succeeded!"); [self set10Notifs]; } }]; } -(void) set10Notifs { if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0")) { #if XCODE_VERSION_GREATER_THAN_OR_EQUAL_TO_8 NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; [calendar setTimeZone:[NSTimeZone localTimeZone]]; NSDateComponents *components […]

多个UNUserNotifications不能触发

我正在设置多个UNUsernotifications如下, – (void)viewDidLoad { [super viewDidLoad]; notifCount = 0; UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]; [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) { if (!error) { NSLog(@"request succeeded!"); [self set10Notif]; } }]; } 在set10Notif方法中,我将当前时间设置为10秒的多个(8testing)通知。 -(void) set10Notif { notifCount = notifCount+1; if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"10.0") && notifCount < 10) { // create actions NSCalendar […]

在应用内启用或禁用Iphone推送通知

我有一个iPhone应用程序是启用接收推送通知。 目前,我可以通过转到iphone设置/通知来禁用我的应用程序的推送通知。 但我想在我的应用程序中添加一个开关或button来启用或禁用推送通知。 这可以做到,因为我看到它在foursqure iPhone应用程序做到了。 他们在设置呼叫通知设置中获得了一个部分,用户可以为应用程序启用或禁用不同types的通知。 我看遍了networkingfind一个适当的解决scheme,但仍然没有find一个办法。 任何人都可以给任何想法如何做到这一点? 提前致谢 :)

当应用程序处于前台时显示本地通知Swift 3

显然这是现在可以与ios10: optional func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: (UNNotificationPresentationOptions) -> Void) 这个答案基本上说,需要做的工具: 当应用程序打开并在前台显示股票iOS通知横幅? 我只是不太了解如何把它放在一起。 我不知道这是多么重要,但我不能保持可选的function和Xcode要我切换到私人。 我试图展示徽章和文档提供 static var badge: UNNotificationPresentationOptions { get } 有一点在这里丢失 然后我假设,如果我想排除某些视图控制器获得这些徽章,我不使用导航控制器,我发现这个代码将工作? :var window:UIWindow? if let viewControllers = window?.rootViewController?.childViewControllers { for viewController in viewControllers { if viewController.isKindOfClass(MyViewControllerClass) { print("Found it!!!") } } }