2010-11-30 54 views
0

Je développe une application Push Notification pour Iphone. Dans Mon application, j'ai deux Affichage liste (UITableView) 1er pour la liste des catégories et le 2ème est la liste des matières. L'utilisateur clique sur la catégorie souhaitée, puis le contenu associé à cette catégorie sera affiché, l'utilisateur choisira le contenu et le contenu sera affiché dans la vue détaillée (généralement un UIWebView).Notification push et affichage de l'action du bouton [ipn sdk APNS]

La notification push arrive avec succès dans mon application. Mon exigence est: - Après avoir cliqué sur le bouton VIEW de l'alerte Push, l'application affichera directement une vue détaillée (UIWebView) [Liste des catégories et du contenu omettant]. J'ai un identifiant unique pour la catégorie et le contenu. Alors, pourriez-vous me dire comment relier un contenu particulier avec la notification push et l'affichage direct de ce contenu.

Merci et salutations.

Répondre

6

HI,

J'ai résolu le problème. C'est ce que j'ai fait. Lorsque l'application recevait une notification push, elle stockait une notification dans launchOptions NSDictionary.

/* Push notification received when app is not running */ 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
NSString *params=[[launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"] objectForKey:@"contTag"]; 

if ([params length] > 0) {//app launch when VIEW button of push notification clicked 

//do some processing 
........ 
WebViewController *webViewController = 
    [[WebViewController alloc] initWithNibName:@"WebView" bundle:[NSBundle mainBundle]]; 
    // Put your custom code 


    [[self navigationController ] pushViewController:webViewController animated:YES]; 
    [window addSubview:navigationController.view]; 


/* Remote Notification Received while application was open. */ 


- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { 

NSLog(@"remote notification: %@",[userInfo description]); 

NSString *contentsInfo = [userInfo objectForKey:@"contTag"]; 
NSLog(@"Received contents info : %@", contentsInfo); 

NSDictionary *apsInfo = [userInfo objectForKey:@"aps"]; 

NSString *alert = [apsInfo objectForKey:@"alert"]; 
NSLog(@"Received Push Alert: %@", alert); 

NSString *sound = [apsInfo objectForKey:@"sound"]; 
NSLog(@"Received Push Sound: %@", sound); 
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); 


//-----------------------APNS HANDLE---------------- 
UIApplicationState state = [application applicationState]; 
if (state == UIApplicationStateActive){ 
    NSLog(@" It is in active state"); 
    application.applicationIconBadgeNumber = [[apsInfo objectForKey:@"badge"] integerValue]; 
} 
    else { 

if ([contentsInfo length] > 0) { 
     // Do whatever u want for push notification handle 
} 

REMARQUE: Ici contTag est un ensemble clé côté serveur pour la charge de rémunération de notification push. U peut définir n'importe quelle touche du côté serveur.

Espérons que cela aidera un peu de corps. Merci