Как обрабатывать полученное push-уведомление из разбора? | RSS

Используя Parse, мое push-уведомление работает отлично. мое приложение является лентой новостей RSS, и время от времени я отправляю Push-уведомление, моя проблема в том, что я не знаю, как обрабатывать push-уведомление, когда пользователь его получает. У меня есть все мои источники RSS, перечисленные в файле plist, например, как выглядит мой файл plist:

rss_sources

↓ 
01
  ↓
  url http://www.newyorkNews.com/rss.xml
  title: new york News
↓
02
  ↓
  url http://www.harlemNews.com/rss.xml
  title: harlem news

то, что я пытаюсь сделать, - проверить, совпадает ли заголовок с началом push-уведомления (так как я тот, кто отправляет push, я напишу точный заголовок), и если это то он перейдет к некоторому index.row, который я установил в коде. возможно ли, что я здесь предложил? если еще один способ сделать это, я буду рад услышать решение или какой-то код кода, похожий на мою ситуацию, чтобы я мог получить от него вдохновение.

Ответ 1

Все, что вам нужно сделать, это установить общий ключ для вашей полезной нагрузки, который в вашем случае выглядит как заголовок. Поэтому, когда вы отправляете push (как data/payload/json), когда пользователь получает один, вы перекрестно ссылаетесь на valueForKey:

Как всегда, я очень рекомендую вам попробовать себя, потому что это то, как вы учитесь. И я всегда направляю пользователей Parse к своей документации, потому что они очень хорошо документированы. Это слишком документировано, если это что-то. Однако, если вы застряли здесь, это рабочий пример:

Постройте push с полезной нагрузкой:

NSDictionary *data = @{
@"alert" : @"some generic message here",
@"badge" : @"Increment",
@"sounds" : @"default",
@"title" : @"NY Times" //this is whatever you want
};

//schedule the push with some options. This isn't a mandatory set up, just an example. You can do a lot with PFPushes

PFPush *push = [[PFPush alloc] init];
[push setChannels:@[ @"subscribed" ]];
[push setData:data];
[push sendPushInBackground];

Теперь все, что вам нужно, это увидеть, соответствует ли значение в полезной нагрузке ключевого заголовка вашим потребностям:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  . . .
  // Extract the notification data from payload

 NSDictionary *notificationPayload = launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];

 NSString *newsType = [notificationPayload valueForKey:@"title"];

  // perform segue or tab bar selectedIndex or whatever you want after checking if user is launching from notification :

if (notificationPayload) {
    //check it title has your string 
    if ([newsType isEqualToString:@"NY Times"]) {
         //do whatever here 
    } else {

    }
 }
}

ссылки - пожалуйста, используйте их либерально, они отлично поработали с предоставлением этого современного ресурса нам

Parse iOS Push: https://parse.com/docs/push_guide#top/iOS

Parse SDK https://parse.com/docs/ios/api/


Push Notification из консоли Parse:

{
"aps" : {
    "alert" : "New NY Time Article",
    "badge" : 1,
    "sound" : "default",
    "title" : "NY Times"
        }
}

Для справки, это поможет вам начать: https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW15