iOS10が提供する新しいUserNotificationフレームワークを使用して、リモートプッシュ通知を登録してトークンをキャッチする方法を教えてもらえますか?リモート通知ios10を登録してapnトークンをキャッチ
1
A
答えて
3
あなたは既にiOS 8からやっているような通知に登録できます(変更されていない通知のための少数のAPIの1つです)。
まず、AppDelegateのapplication:didFinishLaunchingWithOptions:
方法では、アプリの承認を要求します。
UNUserNotificationCenter.current().requestAuthorization([.alert, .sound, .badge]) { (granted, error) in
//here you can check the correct authorization
}
これは、通常の警告「アプリケーションは、あなたに通知を送信したいと思います」と表示されます。新しいrequestAuthorization
メソッドの主な改善点は、クロージャで[許可/禁止]ボタンを直接タップする動作を管理できることです。などアマゾン、OneSignal、同様に(
UIApplication.shared().registerForRemoteNotifications()
...そして最終的にあなたの通知サーバへの登録を管理...:
次に、iOSの8から入手UIApplication
のregisterForRemoteNotifications
方法を使用して、リモート通知を登録します:Objective-Cの方法で)
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
//if you need the token as a string, do this:
let tokenString = String(data: deviceToken, encoding: .utf8)
//call the notifications server for sending the device token
}
func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
print("Application failed to register for remote notifications")
}
1
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self registerForRemoteNotification];
. . .
}
- (void)registerForRemoteNotification {
if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {
UNUserNotificationCenter *uncenter = [UNUserNotificationCenter currentNotificationCenter];
[uncenter setDelegate:self];
[uncenter requestAuthorizationWithOptions:(UNAuthorizationOptionAlert+UNAuthorizationOptionBadge+UNAuthorizationOptionSound)
completionHandler:^(BOOL granted, NSError * _Nullable error) {
[[UIApplication sharedApplication] registerForRemoteNotifications];
NSLog(@"%@" , granted ? @"success to request authorization." : @"failed to request authorization .");
}];
[uncenter getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
NSLog(@"%s\nline:%@\n-----\n%@\n\n", __func__, @(__LINE__), settings);
if (settings.authorizationStatus == UNAuthorizationStatusNotDetermined) {
//TODO:
} else if (settings.authorizationStatus == UNAuthorizationStatusDenied) {
//TODO:
} else if (settings.authorizationStatus == UNAuthorizationStatusAuthorized) {
//TODO:
}
}];
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
if ([[UIDevice currentDevice].systemVersion floatValue] >= 8.0) {
UIUserNotificationType types = UIUserNotificationTypeAlert |
UIUserNotificationTypeBadge |
UIUserNotificationTypeSound;
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
[[UIApplication sharedApplication] registerForRemoteNotifications];
} else {
UIRemoteNotificationType types = UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeAlert |
UIRemoteNotificationTypeSound;
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:types];
}
#pragma clang diagnostic pop
}
デモ:iOS10AdaptationTipsです。
関連する問題
- 1. GCM通知受信/トークン登録
- 2. リモート通知の登録が黙って失敗する
- 3. リモート通知の登録に失敗する
- 4. Magnolia CMS - パブリックユーザー登録通知
- 5. Firebase通知に登録されているすべてのユーザの登録トークンにアクセスできますか?
- 6. iOSバックグラウンドで通知を登録する
- 7. iPhoneにSMS通知を登録する
- 8. apnなしでプッシュ通知(IOS5)をシミュレート
- 9. 通知を登録するには、スウィフト3で通知
- 10. Firebaseからの通知を受信できません。未登録の登録トークン
- 11. チャットのAPNプッシュ通知
- 12. プッシャーAPNの実装通知
- 13. コアデータ - 変更を監視してローカル通知を登録する
- 14. リスナーを登録して通知するユーティリティですか?
- 15. OneSignalを使用したマヌエルのアプリ内通知通知iOS10
- 16. Bluemixプッシュ通知登録IDリスト
- 17. Azure通知ハブ400プッシュ登録
- 18. iOS:プッシュ通知の登録方法
- 19. プッシュ通知登録]タブの場所
- 20. acpiイベント通知の登録方法(AcpiInterfaces.RegisterForDeviceNotifications)
- 21. BlackBerryプッシュ通知の登録時間
- 22. Azure通知ハブ登録生存時間
- 23. アップルプッシュ通知の登録場所:アプリコード
- 24. 登録firebase通知するアプリは
- 25. iOSでGCMプッシュ通知を使用するには、APNに登録する必要がありますか?
- 26. Firebase(FCM)登録トークン
- 27. デバイスは、アップルのプッシュ通知にトークンに登録は私のアプリでサーバー
- 28. タグを使用してAzure通知ハブにiOS APNSトークンを登録する(swift 3)
- 29. 私はのAPNを使用してリモート通知を送信するコードを作成し
- 30. 通知カテゴリの登録方法を教えてください。