2011-10-15 16 views
6

Moja aplikacja musi zostać ustawiona w Centrum powiadomień iOS 5 jako "alerty" i "dźwięki" włączone. Z tego, co odkryłem, nie jest możliwe, aby Twoja aplikacja prawidłowo je ustawiła, co byłoby najlepszą opcją, więc popraw mnie, jeśli się nie mylę.wykryj ustawienie centrum powiadomień

Poszukuję procedury wykrywania bieżących ustawień i ostrzegania użytkownika, jeśli nie są one poprawne.

Odpowiedz

0

Nie można tego zrobić programowo. A "registerForRemoteNotificationTypes" służy do wysyłania powiadomień zdalnych (push), a nie lokalnych.

Jedyne, co udało mi się zrobić, to umieścić w opisie aplikacji w sklepie z aplikacjami wyjaśnienie, jak skonfigurować Centrum powiadomień. Umieściłem to również w moim filmie demonstracyjnym.

Możesz również pomyśleć o wprowadzeniu monitu przy pierwszym uruchomieniu aplikacji, wyjaśniając "poprawne" ustawienia powiadomień dla aplikacji. Nie pokazuj go podczas kolejnych uruchomień, ale udostępniaj go w sekcji "Pomoc".

Oczywiście, "co jest poprawne" jest tym, czego użytkownik chce, ale dla mojej aplikacji użytkownicy NIGDY nie chcieli ustawień domyślnych, czyli "banerów". Najlepsze wrażenia dla użytkowników mojej aplikacji to "dźwięki". Największą skargą dotyczącą mojej aplikacji przed Centrum powiadomień były wyskakujące okienka z powiadomień lokalnych. Teraz dzięki Centrum powiadomień użytkownicy mogą wyłączyć wszystko z wyjątkiem "dźwięków". To jest ustawienie, które wszyscy wydają się chcieć. Dlaczego nie mogę, jako programista, podać go jako domyślny? Jeśli chcą zmienić to na coś innego, to świetnie, ale powinienem mieć kontrolę nad domyślnymi ustawieniami. Ale krzyczę.

+0

Nigdy nie dowiedziałem się, jak to zrobić, jeśli istnieje sposób. (czasami znajdziesz zawiłości, które nie są udokumentowane) i zgadzasz się, że powinien istnieć sposób, aby to zrobić, może wymagać obowiązkowego popup do użytkownika. "Aplikacja chce zmodyfikować ustawienia powiadomień, Zgadzam się?". Chociaż myślę, że ranting jest poza zakresem stackoverflow .... –

0

Nie sądzę, że można to zrobić programowo.

Możesz określić, jakie alerty może zaakceptować aplikacja po uruchomieniu.

użyłbym to w app delegata didFinishLaunchingWithOptions metoda

[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)]; 
0

Pomyśl o tym w ten sposób: co byś, jako użytkownik, że jeśli każda inna aplikacja ustawić na nich? (Oczywiście, chcesz go włączyć w swojej aplikacji, ale nie wszystkie aplikacje są dobre.) Lub, jeśli każda inna aplikacja ostrzegała Cię za każdym razem, gdy została uruchomiona?

Niemożliwe, i dlatego.

Tak jak powiedział Nik, po prostu umieść wszystko, co ma nadzieję użytkownik. System daje wtedy użytkownikowi szansę na to.

+0

dzięki David, jak wspomniałem, do tej pory uważam, że nie jest to możliwe. Interesuje mnie sposób wykrywania w mojej aplikacji ustawień w centrum powiadomień, dzięki czemu mogę wyświetlić ostrzeżenie dla użytkownika, jeśli nie jest ono poprawne. Dzięki temu użytkownik może przejść do centrum powiadamiania i poprawić wprowadzone zmiany. Ostrzeżenie zostanie wtedy usunięte, jeśli zostanie ustawione poprawnie. –

+1

"co jest poprawne" w przypadku powiadomień jest tym, czego użytkownik chce, a nie tym, co chce. Jeśli spróbujesz zmusić użytkownika do określonego rodzaju powiadomienia dla Twojej aplikacji, jestem pewien, że odrzuci Cię natychmiast Apple. – BigSprocket

1

rzeczywistości może to być wykonane następującym sposobem -

rodzajów UIRemoteNotificationType = [UIApplicationsharedApplication].enabledRemoteNotificationTypes;

natomiast typy jest

typedef enum 
{  
    UIRemoteNotificationTypeNone = 0, 
    UIRemoteNotificationTypeBadge = 1 << 0, 
    UIRemoteNotificationTypeSound = 1 << 1, 
    UIRemoteNotificationTypeAlert = 1 << 2, 
    UIRemoteNotificationTypeNewsstandContentAvailability = 1 << 3 
} 

według: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html Więc jeśli chcesz wiedzieć, jeśli użytkownik zatwierdza aplikację powiadomień, wszystko co musisz zrobić, to sprawdzić, czy types >= 4 być aware: nie powie Ci, czy użytkownik włączył lub wyłączył centrum powiadomień dla Twojej aplikacji, poinformuje Cię TYPE o powiadomieniu zatwierdzonym przez użytkownika

+0

Nie mogę tego zrobić. Czy przetestowałeś najnowszy system iOS i obecny sprzęt? –

+0

Tak, i działa. Jaką liczbę otrzymasz dla typów? –

+0

Wygląda na to, że '- (void) registerForRemoteNotificationTypes: (UIRemoteNotificationType) types' musi zostać wywołany, aby' enabledRemoteNotificationTypes' odpowiedział cokolwiek poza '0'. Dotyczy tylko urządzeń typu push i nie można ich używać do lokalnych powiadomień. – Jonny

Powiązane problemy