私は最初のアプリの起動時に、なぜプッシュ通知を受け入れる必要があるのかをユーザに説明するビューを提示します。彼はそれから2つのオプションを持っています:スキップ(彼はこれを行う場合、私はプッシュ通知のために登録することはありません)、またはプッシュ通知を受け入れます。その場合、プッシュ通知ポップアップを表示します。iOS - registerForRemoteNotifications別のUIViewコールバック
私には2つの問題があります。まず第一に、私はいつも次のコードで、AppDelegateでプッシュ通知を登録するために使用:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法で
if ([application respondsToSelector:@selector(registerUserNotificationSettings:)])
{
UIUserNotificationType types = (UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
}
。
私は今、2つのボタンで表示するビューでこの全く同じコードを使用しようとしています。私はAppDelegateからコードを削除しました。とにかくこれは動作しますか? AppDelegateのコードを持つ問題は、最初の起動時にプッシュ通知を受け入れるか拒否するかをユーザーに直接促すということです。これは避けたいものです。
次に、ユーザーがプッシュ通知(ポップアップ上)を受け入れるか拒否するとすぐに知る必要があるという問題があります。私は彼がどんな決定をしたかに気をつけません。次の見解を示すことができるように、ただちに知っておく必要があります。
私は、次のデリゲートメソッド試してみた:
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
と-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
をしかし、私は許可または許可しないのいずれかをクリックしたときに呼び出されません。
これを行う正しい方法は何ですか?
はい、アプリケーションのどこからでもリモート通知の登録を呼び出すことができます。 – ystack
Thanks @ystack。コールバックについて知っていますか? –