我试图在我的应用处于前台时显示本地通知。我在显示远程通知时没有问题,但是当应用程序在前台运行时遇到问题。我只有新的iOS 10的问题。xcode 8和iOS 10本地通知
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
// TODO: Handle data of notification
if application.applicationState == UIApplicationState.Active {
//print("Message ID: \(userInfo["gcm.message_id"]!)")
//print("Message ID: \(userInfo.keys)")
dispatch_async(dispatch_get_main_queue(), {() -> Void in
if (userInfo["notice"] != nil) {
if #available(iOS 10.0, *) {
print ("yes")
let content = UNMutableNotificationContent()
content.title = "My Car Wash"
content.body = (userInfo["notice"] as? String)!
}
else
{
let localNotification = UILocalNotification()
localNotification.fireDate = NSDate(timeIntervalSinceNow:0)
localNotification.alertBody = userInfo["notice"] as? String
localNotification.soundName = UILocalNotificationDefaultSoundName
localNotification.alertAction = nil
localNotification.timeZone = NSTimeZone.defaultTimeZone()
UIApplication.sharedApplication().scheduleLocalNotification(localNotification)
let systemSoundID: SystemSoundID = 1000
// to play sound
AudioServicesPlaySystemSound (systemSoundID)
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate)
completionHandler(.NewData)
}
}
})}
}
我的iPhone运行iOS 10,我可以看到“是”被打印出来。我的应用程序具有必需的通知权限。
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Register for remote notifications
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
// [END register_for_notifications]
FIRApp.configure()
// Add observer for InstanceID token refresh callback.
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.tokenRefreshNotification),
name: kFIRInstanceIDTokenRefreshNotification, object: nil)
return true
}
正如在iOS 9设备上提到的,代码工作正常,当应用程序未运行时我收到通知。当应用处于前台时,问题出现在iOS 10上。我一直在寻找谷歌一段时间,但我仍然不在那里。任何帮助或建议将不胜感激。
这应该对你有帮助:https://makeapppie.com/2016/08/08/how-to-make-local-notifications-in-ios-10/#comments – Do2
用Objective-C方法http:// stackoverflow。 COM /问题/ 37938771/uilocalnotification-被弃用的功能于ios10/37969401#37969401 – ElonChan