Q1. Dois-je le faire au début de mon application? Ou puis-je déclencher l'invite pour autoriser / ne pas autoriser à aucun moment de mon application? P>
Q2. Y a-t-il un moyen de savoir si l'utilisateur a cliqué sur Oui / Non? (rappel?) p>
Q3. Si l'utilisateur a déjà cliqué sur Non, (dans une session précédente), mon invite sera-t-il réellement incendié? Ou dois-je dire à l'utilisateur d'aller dans leurs paramètres de téléphone et d'y permettre là-bas? P>
La raison en cours est que j'ai une application qui a une section à l'intérieur de celle-ci appelée "Notifications", dans laquelle ils peuvent activer / désactiver de recevoir des notifications sur certaines choses, je ne veux donc que les inviter à activer, etc. Quand ils sont dans cette section Pas au début de l'application. P>
4 Réponses :
A1: Non, il n'est pas nécessaire d'être au début de l'application. Vous pouvez invoquer registerforremotenotificationTypes de n'importe où dans le code.
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { NSDictionary *apsInfo = [userInfo objectForKey:@"apsinfo"]; // This appsInfo set by your server while sending push NSString *alert = [apsInfo objectForKey:@"alert"]; UIApplicationState state = [application applicationState]; if (state == UIApplicationStateActive) { application.applicationIconBadgeNumber = 0; AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:@"Push Notification" message:alert delegate:self cancelButtonTitle:@"NO" otherButtonTitles:@"YES"]; [alertview show]; [alertview release]; } else { [self setTabs:contentsInfo]; } } - (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex { if (buttonIndex != [alertView cancelButtonIndex]) { // User pressed YES, do your stuffs } }
Si l'utilisateur rejette pour recevoir une notification push ou désactiver la notification push à partir des paramètres, comment pouvons-nous gérer le cas d'invite à nouveau l'utilisateur? .Je.e., Comment savoir que l'utilisateur n'est pas enregistré pour la poussée et lui donner une invite?
Cette réponse (et probablement d'autres réponses) est partiellement obsolète b>. Il s'applique uniquement à iOS <7. Dans iOS789, vous deviez faire un [Application registerforremotenotifications] distinct code> comme cela vous permettrait de vous accéder au jeton (quelque chose que vous pouvez faire sans la permission de l'utilisateur; la permission n'est requise que si vous souhaitez donner une alerte / un badge , son de l'utilisateur). Dans iOS 10, il existe un nouveau cadre nommé
usernotifications code> qui vous permettra de déterminer si l'utilisateur autorisait l'accès ou non. Voir ici pour plus d'informations sur iOS 10 (1/2)
Dans les versions précédentes, vous avez dû [application isregisteredforremotenotifications] code> pour voir si vous êtes inscrit ou non (2/2)
Application: DidfinishlaunchingwithOptions: Code> en quelque sorte
Assurez-vous que le jeton de périphérique est stocké avec succès sur le serveur de développeur. LI>
- Q2 Quel est le "oui / non" pour ici? Si vous voulez dire "oui / non" sur "si
recevoir une notification push ", puis si l'utilisateur a cliqué sur" Oui ", le
Délégué
Application:
DidregisterforremotenotificationsWithDeviceSToken code> sera déclenché,
sinon pas. li>
- q3 si l'utilisateur cliquez sur "Non" pour rejeter la notification de la réception, puis
soit vous pouvez plus tard lui rappeler de le transformer dans des paramètres, ou d'avoir un
fonction, comme une chose d'Uiswitch, pour permettre aux utilisateurs de déclencher
[[uiapplication SharedApplication]
registerforremotenotificationTypes: (UiremotenotificationTypealert |
UIRIMOTENOTIFICATIONTTYPEBADGEGADGE | UIRMOTENOTIFICATIONTYPESUNED)]; code>
encore. li>
ul>
Nous pouvons également sauter d'autre partie IOS <8 notifications .. comme maintenant quelques jours, nous allons iOS 8 et en haut ... Mohammad Good Obj Code.
dans l'IOS: 10, un gestionnaire d'achèvement est mis en œuvre. Par conséquent, vous serez notifié immédiatement dans le bloc de gestionnaire d'achèvement. P> if([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.f){
UNUserNotificationCenter* notificationCenter = [UNUserNotificationCenter currentNotificationCenter];
[notificationCenter requestAuthorizationWithOptions:UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge completionHandler:^(BOOL granted, NSError * _Nullable error) {
NSLog(@"grant Access:%d",granted);
}];
Dans iOS 10 Si vous utilisez le
USERERNOTIFICATIONS CODE> Framework i> Ensuite, vous pouvez savoir si l'utilisateur a cliqué sur Oui / Non à l'aide d'un rappel. Voir ici