Cordova 2.5.0 - Ошибки после ссылки appDelegate.m на PushPlugin

У меня есть некоторые проблемы с работой PushNotification-Plugin в Xcode. Вот что я делал до сих пор (без ошибок до последнего пункта):

  • Я скачал новейший подключаемый модуль с https://github.com/phonegap-build/PushPlugin/.
  • Я перетаскиваю папку PushNotification в папку Plugins в XCode и выбираю «Создавать группы для любых добавленных папок» в качестве параметра копирования.
  • скопировал PushNotification.js вне Xcode в папку www моего проекта
  • добавлен тег script для ссылки на файл PushNotification.js в моем файле HTML
  • добавлено имя плагина = «PushPlugin» и значение = «PushPlugin» внутри config.xml

Ошибок пока нет (хотя я думал, что это может быть полезно, вы знаете, что я уже сделал)

Хорошо, теперь начинаются ошибки: я добавил этот блок кода с этими методами в свой AppDelegate.m

#pragma PushNotification delegation

- (void)application:(UIApplication*)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
[pushHandler didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
}

- (void)application:(UIApplication*)app didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
[pushHandler didFailToRegisterForRemoteNotificationsWithError:error];
}

- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
{
PushNotification* pushHandler = [self.viewController getCommandInstance:@"PushNotification"];
NSMutableDictionary* mutableUserInfo = [userInfo mutableCopy];

// Get application state for iOS4.x+ devices, otherwise assume active
UIApplicationState appState = UIApplicationStateActive;

    if ([application respondsToSelector:@selector(applicationState)]) {
    appState = application.applicationState;
    }
    [mutableUserInfo setValue:@"0" forKey:@"applicationLaunchNotification"];

    if (appState == UIApplicationStateActive) {
    [mutableUserInfo setValue:@"1" forKey:@"applicationStateActive"];
    } else {
    [mutableUserInfo setValue:@"0" forKey:@"applicationStateActive"];
    [mutableUserInfo setValue:[NSNumber numberWithDouble: [[NSDate date] 
    timeIntervalSince1970]] forKey:@"timestamp"];
    [pushHandler.pendingNotifications addObject:mutableUserInfo];
    }
 }

Итак, это ошибки, которые я получаю:

  • Использование необъявленного идентификатора pushHandler; Вы имели в виду 'onpushHandler'?
  • Неизвестное имя типа «PushNotification»; Вы имели в виду «NSNotification»?
  • Свойство pendingNotifications не найдено в объекте типа NSNotification * —

Я изменил «pushHandler» на «onpushHandler», но не знаю, правильно ли это, потому что разработчик плагина изначально не назвал его onpushHandler.

Что касается двух других вещей, я не знаю, правильно ли это сделать, изменив его на NSNotification.

Может быть, кто-нибудь мог бы мне помочь


person Daniel von Matterhorn    schedule 02.04.2013    source источник


Ответы (1)


Проверьте папку Pushnotification в вашем xcode, есть ли в ней файл Pushnotification.m или файл PushPlugin.m. Если это файл PushPlugin.m, не копируйте этот код в файл AppDelgate.m. Скопируйте AppDelegate из github

Если это файл PushNotification.m, просто добавьте код вверху файла AppDelegate.m.

импортировать PushNotification.h

Я рекомендую вам начать с нуля, перейдя по этой ссылке.

person Linson    schedule 03.04.2013
comment
большое спасибо Линсон. Но в гитхабе с новейшим PushNotifications-PLugin нет AppDelegate — что копировать? - person Daniel von Matterhorn; 04.04.2013
comment
Пожалуйста, просмотрите этот github.com/hollyschinsky/PhoneGapBuildPushProject2/blob/ мастер/ - person Linson; 04.04.2013
comment
Потрясающе, спасибо. Я думал о том, чтобы написать Холли комментарий в ее блоге. Кажется, это код, который я ищу. - person Daniel von Matterhorn; 04.04.2013
comment
Я пытался проголосовать за вас, но мне не хватает репутации, но еще раз спасибо. - person Daniel von Matterhorn; 04.04.2013