私のアプリがフォアグラウンドにあるときにローカル通知を表示しようとしています。リモート通知を表示するのに問題はありませんが、アプリケーションがフォアグラウンドで実行されているときに問題が発生しています。私は新しい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で発生します。私はしばらくの間Googleを検索してきましたが、私はまだそこにいません。どんな助けや提案も大歓迎です。
これはあなたを助けるはずです:https://makeapppie.com/2016/08/08/how-to-make-local-notifications-in-ios-10/#comments – Do2
Objective-Cメソッドでhttp:// stackoverflow。 com/questions/37938771/uilocalnotification-is-deprecated-in-ios10/37969401#37969401 – ElonChan