2013-05-03 19 views
5

Pracuję nad aplikacją na Androida. Będą dwa typy użytkowników - Admin i klient. Chcę tylko, aby Admin zamieścił kilka powiadomień w zwykłym tekście, a następnie zostaną one powiadomione przez klientów. Pytanie brzmi: Co powinienem użyć, aby przekazywać powiadomienia od administratora do klienta. Czytałem gdzieś, że jest to możliwe za pomocą Google App Engine i Google Cloud Messaging (GCM), ale praca z Google App Engine jest bardzo skomplikowana. Czy jest jakaś lepsza opcja, której mogę użyć?Przekazywanie powiadomienia od administratora do klienta

Odpowiedz

1

Jeśli tylko twoim problemem jest to, nie chce oddać się do programowania po stronie serwera i nadal chcesz otrzymać jakiś ciąg w swojej aplikacji jako powiadomienia Push, można spróbować i odkrywania:

http://framework.realtime.co/messaging/#android

1

Można użyć usługi Amazon S3. Aby uzyskać więcej informacji, odwiedź: http://aws.amazon.com/s3/

+0

Nie wiem od czego zacząć. Jeszcze nie programowałem po stronie serwera, czy mógłbyś wskazać mi, od czego zacząć? –

1

Google App Engine jest bardzo prosty, jeśli czytasz step-by-step guide.

Musisz zainstalować maven: daniele this JAK, a następnie czytać instrukcji Google i z pewnym wyciąć i wkleić w pom.xml i 3 klasy będziesz mógł pisać trochę odpocząć usługę internetową w 4 godziny!

Zrobiłem to kilka tygodni temu, a złożoną rzeczą było wygenerowanie identyfikatora O-AUTH do automatycznego uwierzytelniania użytkownika! W końcu będziesz mógł również wygenerować cienkiego klienta Android, aby skorzystać z usługi!

Jeśli znasz java, wszystko to będzie proste!

Jest to prosty serwis internetowy z aplikacjami silnika:

@Api(
    name = "helloworld", 
    version = "v1", 
    scopes = {Constants.EMAIL_SCOPE}, 
    clientIds = {Constants.WEB_CLIENT_ID, Constants.ANDROID_CLIENT_ID, Constants.API_EXPLORER_CLIENT_ID}, 
    audiences = {Constants.ANDROID_AUDIENCE} 
) 
public class Greetings { 
    public static ArrayList<HelloGreeting> greetings = new ArrayList<HelloGreeting>(); 

    static { 
     greetings.add(new HelloGreeting("ciao world!")); 
     greetings.add(new HelloGreeting("addio world!")); 
    } 

    public HelloGreeting getGreeting(@Named("id") Integer id) { 
     return greetings.get(id); 
    } 
} 
+0

Czy lepiej wybrać niż Java? –

+0

Używasz java dla aplikacji, prawda? Więc używaj go wszędzie: D Althoug możesz napisać swój backend w pythonie lub php (ale nie przetestowałem) –

+0

Ale nie pracowałem z Servlets lub jakiegokolwiek programowania po stronie serwera. Gdzie powinienem zacząć? –

1

Myślę, że najlepszym wyborem masz rzeczywiście Google Cloud Messages. Pamiętaj, że wszystko, co zaimplementujesz, będzie musiało być do siebie bardzo podobne, więc po co odkrywać nowe koło?

Jeśli nie chcesz korzystać z tego, istnieje kilka innych możliwości, które przychodzą mi do głowy (chociaż, jak już powiedziałem, w końcu oni naśladować GCM „s zachowanie):

  • wykonawcze a słuchanie po stronie klienta. W ten sposób najpierw musisz upewnić się, że każdy klient, który się połączy, będzie musiał wysłać ci jakoś (na przykład żądanie HTTP POST) jakiś sygnał i adres IP, ponieważ musisz wiedzieć, gdzie się połączyć. W ten sposób będziesz musiał łączyć się z każdym z urządzeń za każdym razem, gdy chcesz wysłać powiadomienie, wyślij wiadomość przez to Socket i obsłuż czasy (na przykład, jeśli spróbuję dostarczyć wiadomość i odmówię połączenia dla X razy, mógłbym to rozważyć, ponieważ klient odłączył się).

  • Wdrożenie scentralizowanego 'deska'. Dzięki takiemu podejściu klienci łączyliby się ze scentralizowaną tablicą ogłoszeń (na przykład z witryną HTTP), wypowiadali się co 30 sekund i pokazywali tylko nowe wiadomości. W ten sposób musisz zachować kontrolę nad już wyświetlanymi wiadomościami i pokazywać tylko te nowe. Wadą tego podejścia jest to, że początkowo musiałby być dostępny dla każdego (nawet jeśli nie używają Twojej aplikacji), ale możesz wdrożyć dodatkowe środki bezpieczeństwa, aby tego uniknąć (na przykład, zezwól tylko klientom, którzy się zarejestrowali). wysłanie HTTP POST do zdalnego serwera), inaczej przekieruj ich na stronę błędu lub zwróć błąd 430 Forbidden.

Jeśli wreszcie chcą dać spróbować GCM (co jest łatwiejsze niż można sobie wyobrazić), napisałem odpowiedź czas temu, który podsumowuje do przewodnika krok po kroku co zrobić, aby go wdrożyć .

2

Google App Engine jest idealnym miejscem dla Państwa wymagań co powiadomień Push GCM potrzebować jakiegoś serwera. Aby uzyskać alternatywę, możesz również spróbować poznać pakiet SDK Parse.

Powiązane problemy