2012-05-18 2 views
0

iPhone 푸시 알림에 대한 의문점이 있습니다. 사용자가 앱을 사용하고있을 때 앱을 사용해야하지만 앱을 닫을 때 나에게 경고 음표가 필요하지 않습니다.사용자가 수락하지 않는 경우에도 밀어 넣기 알림 사용

내 질문은 : 사용자가 앱 시작시 푸시 알림을받지 않는 경우에도 이러한 종류의 알림을 사용할 수 있습니까?

앱을 실행할 때 타이머가 주기적으로 Google 서버에서 정보를 얻지 못하도록 푸시 시스템을 사용하고 싶습니다. 알림, 뱃지 및 소리가없는 맞춤 알림입니다.

고맙습니다.

답변

1

아니요, 사용자의 선택을 회피 할 수 없습니다 (사용자는 아니오라고 말하면 사용자는이를 존중해야 함). 하지만 사용자가 사용하지 않기로 결정했는지 확인할 수 있습니다.

UIRemoteNotificationType types = [[UIApplication sharedApplication] enabledRemoteNotificationTypes]; 
if (types == UIRemoteNotificationTypeNone) { 
    // user does not want to get push notifications 
} 
+0

감사합니다. 많은 감사! –

0

아니요. 사용자가 알림을 거부하면 APNS 서버가 알림을 거부합니다. 그런데 사용자 권한을 묻지 않고 앱에서 응용 프로그램/사용자 정보를 얻으려고하면 App Store에서 응용 프로그램이 거부 될 수 있습니다.

+0

감사하지만 응용 프로그램/사용자 정보를 얻고 싶지는 않습니다. 난 단지 우리의 서버와 사용자 정의 메시지를 교환해야합니다 : 응용 프로그램은 채팅, 그래서 나는 그에게 새로운 메시지가 있다는 것을 사용자에게 알리고 싶습니다. 그래서 앱은 서버에 새로운 메시지를 요청할 수 있습니다. –

+0

글쎄, APNS 시스템을 사용하려면 사용자 계약을 맺어야합니다. 즉, 응용 프로그램이 종료 된 상태에서 사용자가 알림을 받도록하려면 APNS 시스템이 필요합니다. 응용 프로그램을 시작한 후에 만 ​​작동하게하려면 스레드 및 백그라운드 작업을 사용할 수 있습니다. 또한 서버의 메시지를 읽을 수있는 리스너를 가질 수 있습니다. 또는 앱이 예정된 수표 (xx 초마다)를 수행하도록합니다. 이 경우 배터리 사용에 대한 극적인 결과를 초래하므로 실제로 사용하는 타이머를 생각해야합니다. – CitronEvanescent

+0

타이머가 배터리 사용에 많은 문제를 일으킬 수 있다는 것을 알고 있습니다. 이러한 이유로 APNS를 사용하게됩니다. 내가 이해하지 못하는 것은 서버의 메시지에서 읽을 청취자를 얻는 방법입니다. iPhone에서 "일종의"서버 소켓을 사용해야합니까? 또는 무엇을? 감사합니다. –

관련 문제