2010-11-30 8 views
0

iPhone用プッシュ通知対応アプリケーションを開発中です。 私のアプリケーションでは、2つのリストビュー(UITableView) がカテゴリリストに1番目、2番目がコンテンツリストです。 ユーザーが希望するカテゴリをクリックすると、そのカテゴリに関連するコンテンツが表示され、ユーザーがコンテンツを選択すると、コンテンツが詳細ビュー(通常はUIWebView)で表示されます。通知をプッシュしてボタン操作を表示する[iphone sdk APNS]

プッシュ通知がアプリケーションに正常に送信されています。 私の要件は次のとおりです。 - プッシュアラートのVIEWボタンをクリックすると、アプリケーションは特定の 詳細ビュー(UIWebView)[カテゴリとコンテンツリストを省略]を直接表示します。 カテゴリとコンテンツに固有のIDがあります。 プッシュ通知を使って特定のコンテンツを関連づけ、そのコンテンツを直接表示する方法を教えてください。

ありがとうございます。

答えて

6

HI、

私はこの問題を解決しました。 これは私がやったことです。 アプリケーションはプッシュ通知を受信すると、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 
} 

注: ここcontTagは、プッシュ通知のペイロードのためのサーバ側で設定したキーです。 Uはサーバー側で任意のキーを設定できます。

身体を助けることを願っています。 ありがとうございました