2015-04-12 12 views
5

Testuję natywny system operacyjny PushNotificationIOS.reaguje na natywne PushNotificationIOS nie nasłuchuje powiadomienia push

http://facebook.github.io/react-native/docs/pushnotificationios.html#content

powiązać zdarzenie jak poniżej w componentWillMount funkcji

PushNotificationIOS.addEventListener('notification', this._onNotification); 

i wysłać powiadomienia push z serwera do urządzenia. To nie łapie powiadomienia push.

mogę tylko otrzymał powiadomienia push poniżej kodu obiektowego c

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

PushNotificationIOS można słuchać z RCTDeviceEventEmitter rozmowy. , ale powiadomienie z serwera nie może nasłuchiwać.

Czy ktoś wie o tym problemie?

+0

widzisz jakieś błędy JavaScript? Zastanawiam się, czy to pomaga: https://github.com/facebook/react-native/issues/565 –

+0

Nie widzę żadnego błędu. Zrobiłem to jako http://facebook.github.io/react-native/docs/linking-libraries.html#content –

Odpowiedz

5

push nie działa po wyjęciu z pudełka i nie jest to udokumentowane na React Native docs. Jest kilka rzeczy, które musisz najpierw dodać do swojego projektu, aby połączyć się z powiadomieniami. Znalazłem te informacje z otwartego wydania na github https://github.com/facebook/react-native/pull/1979#issue-94795697.

Po prostu trzeba ręcznie połączyć powiadomienia w AppDelegate.m i wywołać odpowiednie metody z RCTPushNotificationManager, aby klasa PushNotificationsIOS mogła obsłużyć je z kodu javascript.

  1. dodać RCTPushNotification do projektu (a także połączyć pliki binarne w ustawieniach kompilacji).
  2. dodać nagłówek do nagłówka ścieżek wyszukiwania: $(SRCROOT)/node_modules/react-native/Libraries/**
  3. dodać ten kod do AppDelegate.m:

#import "RCTPushNotificationManager.h" 

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 
{ 
    [RCTPushNotificationManager application:application didFailToRegisterForRemoteNotificationsWithError:error]; 
} 

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{ 
    [RCTPushNotificationManager application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; 
} 

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)notification 
{ 
    [RCTPushNotificationManager application:application didReceiveRemoteNotification:notification]; 
} 
+0

Podążam tymi krokami, ale Xcode nie może znaleźć 'RCTPushNotificationManager.h' jak mogę to naprawić? –

+0

@MelihMucuk Jeśli dodałeś 'RCTPushNotification.xcoceproj' do swojego folderu Biblioteki i dodałeś ścieżkę wyszukiwania nagłówka' $ (SRCROOT)/node_modules/react-native/Libraries/** 'do celu projektu w obszarze Ustawienia kompilacji> Ścieżki wyszukiwania> Nagłówek Search Paths xcode powinno być w stanie znaleźć plik nagłówkowy. Jeśli xcode nadal nie może go znaleźć, możesz spróbować usunąć pochodne pliki dla twojego projektu w '~/Library/Developer/Xcode/DerivedData /' i przebudować. –

+0

nic się nie zmieniło. '#import" ../../ Biblioteki/PushNotificationIOS/RCTPushNotificationManager.h "' Jeśli importuję w ten sposób, Xcode znajdź wymaganą bibliotekę. –

1

Znalazłem to też tak napisał moduł zamienny do obsługi odbierania powiadomień push - Powiadomienia https://github.com/darylrowland/react-native-remote-push

+0

Powinieneś dołączyć informacje z linku i dodać je jako odniesienie. http://stackoverflow.com/help/how-to-answer – NatureShade

+0

Dzięki za udostępnienie, jednak Twoja wtyczka wydaje się mieć błędy z React Native 0.4.4 Daryl? A może robię coś nie tak? zainstalowane za pomocą npm. –

+0

Czy mógłbyś dodać instrukcje, jak dodać swoją bibliotekę do istniejącego projektu typu "natywny". a także npm instaluje messes z projektem, więc muszę wyczyścić węzły-moduły i reinstalować za każdym razem, gdy instaluję lib –

Powiązane problemy