Xcode 7.3 で Apple プッシュ通知デモアプリを実装しました。その正常に動作していました。最近、Xcode 8 をダウンロードしました。デモ アプリが Xcode 7 でも Xcode 8 でも動作しません。デリゲート メソッドが呼び出されませんでした。何が悪かったのかわかりません。Xcodeは資格を作成することを提案し、私はそうしました。誰か助けてください。
ありがとう、ヴィカシュ
機能からのプッシュ通知および AppDelegate の BuildPhase での UserNotification フレームワークの追加では、デリゲート メソッド UNUserNotificationCenterDelegate を追加します。
import UserNotifications
でしたFinishingLaunching...
if #available(iOS 10.0, *) {
let center = UNUserNotificationCenter.current()
center.delegate = self
center.requestAuthorization(options: [.sound, .alert, .badge]) { (granted, error) in
if error == nil{
UIApplication.shared.registerForRemoteNotifications()
}
}
} else {
// Fallback on earlier versions
}
これらのメソッドを追加
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
let deviceTokenString = deviceToken.reduce("", {$0 + String(format: "%02X", $1)})
print(deviceTokenString)
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) {
print("i am not available in simulator \(error)")
}
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
}
@available(iOS 10.0, *)
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
}