나는 푸시 알림을 지원하는 앱을 만들기 위해 trigger.io를 사용하고 있습니다. 이것은 잘 작동합니다. 전체적으로 푸시 알림을 사용 중지하면 앱에서 푸시 알림을 수신하지 않습니다. 사용자가 설정을 통해 내 애플리케이션에 대한 푸시 알림을 사용 또는 사용 중지했는지 확인할 수있는 명령이 trigger.io에 있습니까?사용자가 trigger.io에서 전체적으로 밀어 넣기 알림을 사용할 수 없는지 감지 할 수 있습니까?
0
A
답변
0
실제로 iOS에서 푸시 설정을 얻을 수 있습니다. 그러나 이것을 자신의 native module으로 구현해야합니다. Trigger.io- 기반 앱 :
+ (void)getPushStatus:(ForgeTask*)task {
NSArray *pushStatus;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSettings];
UIUserNotificationType notificationTypes = settings.types;
if (notificationTypes == UIUserNotificationTypeBadge) {
pushStatus = [NSArray arrayWithObjects: @"badge", nil];
} else if (notificationTypes == UIUserNotificationTypeAlert) {
pushStatus = [NSArray arrayWithObjects: @"alert", nil];
} else if (notificationTypes == UIUserNotificationTypeSound) {
pushStatus = [NSArray arrayWithObjects: @"sound", nil];
} else if (notificationTypes == (UIUserNotificationTypeBadge | UIUserNotificationTypeAlert)) {
pushStatus = [NSArray arrayWithObjects: @"badge", @"alert", nil];
} else if (notificationTypes == (UIUserNotificationTypeBadge | UIUserNotificationTypeSound)) {
pushStatus = [NSArray arrayWithObjects: @"badge", @"sound", nil];
} else if (notificationTypes == (UIUserNotificationTypeAlert | UIUserNotificationTypeSound)) {
pushStatus = [NSArray arrayWithObjects: @"alert", @"sound", nil];
} else if (notificationTypes == (UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound)) {
pushStatus = [NSArray arrayWithObjects: @"badge", @"alert", @"sound", nil];
} else {
// notificationTypes == UIUserNotificationTypeNone
pushStatus = [[NSArray alloc] init];
}
} else {
UIRemoteNotificationType notificationTypes = [[UIApplication sharedApplication] enabledRemoteNotificationTypes];
if (notificationTypes == UIRemoteNotificationTypeBadge) {
pushStatus = [NSArray arrayWithObjects: @"badge", nil];
} else if (notificationTypes == UIRemoteNotificationTypeAlert) {
pushStatus = [NSArray arrayWithObjects: @"alert", nil];
} else if (notificationTypes == UIRemoteNotificationTypeSound) {
pushStatus = [NSArray arrayWithObjects: @"sound", nil];
} else if (notificationTypes == (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert)) {
pushStatus = [NSArray arrayWithObjects: @"badge", @"alert", nil];
} else if (notificationTypes == (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)) {
pushStatus = [NSArray arrayWithObjects: @"badge", @"sound", nil];
} else if (notificationTypes == (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)) {
pushStatus = [NSArray arrayWithObjects: @"alert", @"sound", nil];
} else if (notificationTypes == (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)) {
pushStatus = [NSArray arrayWithObjects: @"badge", @"alert", @"sound", nil];
} else {
// notificationTypes == UIRemoteNotificationTypeNone
pushStatus = [[NSArray alloc] init];
}
}
[task success:pushStatus];
}
코드 더미가 두려워하지 마십시오. 첫 번째 절반은> = iOS8, 두 번째 절반은 아래의 모든 것입니다. 기본적으로 사용자가 앱에 대해 어떤 알림 유형을 활성화했는지 알려줍니다.
반환 값은 "배지", "경고"및/또는 "소리"로 구성된 배열입니다.
사용자가 앱에서 푸시를 사용 중지하면 배열이 비어있게됩니다.
추신 : 분명히 위의 코드가 더 잘 수행 될 수 있으므로 Objective-C가 좋지 않습니다. 난 그냥 당신이 안드로이드에 대해 질문 실현했습니다
EDIT) 그러나, 여전히 나를 위해 작동합니다. 내 대답은 iOS와 관련이 있습니다. 이 게시물 Android 4.1: How to check notifications are disabled for the application?에 따르면 안드로이드에 대한 정보를 얻을 수 없습니다.
1
당신은 당신의 채널이 그 때 가입 및되지 않은 경우이, 그들은 구독하는 채널 목록을 반환합니다
forge.parse.push.subscribedChannels (성공, 오류
을 사용할 수 있습니다 콜백에서 당신이 원하는 것을 할 수 있습니다. (구독 등)
하지만 사용자가 푸시 알림을 사용 중지했는지 (설정 페이지를 통해) 구문 분석을 통해 어떻게 알 수 있습니까? – Christian
푸시 알림을 전역으로 끄면 parse-unsubscribe 메서드가 실행되는 것으로 생각하지 않습니다. – Christian