앱이 백그라운드에있는 동안 iOS 원격 알림을 처리하는 방법

다크 나이트

애플 푸시 알림을 통해 iOS 푸시 알림 기능을 작업 중입니다. 지금 내 앱이 백그라운드 또는 포 그라운드에있는 동안 적절한 알림을 받고 있지만 앱이 백그라운드에있을 때 기본적으로 앱이 백그라운드에있을 때 원격 알림을 처리하고 싶습니다. 단순히 페이로드에서 경고 메시지를 표시하는 것입니다. 실제로 원격 알림을 사용자 지정하고 싶습니다.

암호:

 - (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {
// Override point for customization after application launch.
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
//        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
else
{
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
}
return YES;
}
- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"Did Register for Remote Notifications with Device Token (%@)", error);
}
- (void)application:(UIApplication )application didRegisterForRemoteNotificationsWithDeviceToken:(NSData )deviceToken {
NSLog(@"Did Register for Remote Notifications with Device Token (%@)", deviceToken);
}
-(void)application:(UIApplication )application didReceiveRemoteNotification:(NSDictionary )userInfo fetchCompletionHandler:(void (UIBackgroundFetchResult))completionHandler
{
NSDictionary * aps=[userInfo valueForKey"aps"];
NSLog(@"did recevie %@",aps);
NSLog(@"userinfo details %@",[aps valueForKey"alert"]);
}
히만 스

아이폰 OS 10에서 먼저 설정해야합니다 UNUserNotificationCenterDelegate에서 AppDelegate.h파일

@interface AppDelegate : UIResponder <UIApplicationDelegate,CLLocationManagerDelegate,UNUserNotificationCenterDelegate>

그 후 AppDelegate.m다음과 같은 코드 작성

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.1) {
            // iOS 7.1 or earlier. Disable the deprecation warnings.
            UIRemoteNotificationType allNotificationTypes =
            (UIRemoteNotificationTypeSound |
             UIRemoteNotificationTypeAlert |
             UIRemoteNotificationTypeBadge);
            [application registerForRemoteNotificationTypes:allNotificationTypes];
            [[UIApplication sharedApplication] registerForRemoteNotifications];
        } else {
            // iOS 8 or later
            // [START register_for_notifications]
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0)
    {
                UIUserNotificationType allNotificationTypes =
                (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
                UIUserNotificationSettings *settings =
                [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil];
                [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
                [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
                [[UIApplication sharedApplication] registerForRemoteNotifications];
                [application registerForRemoteNotifications];
            } else {
                // iOS 10 or later
    #if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
                UNAuthorizationOptions authOptions =
                UNAuthorizationOptionAlert
                | UNAuthorizationOptionSound
                | UNAuthorizationOptionBadge;
                [[UNUserNotificationCenter currentNotificationCenter]
                 requestAuthorizationWithOptions:authOptions
                 completionHandler:^(BOOL granted, NSError * _Nullable error) {
                 }
                 ];
                // For iOS 10 display notification (sent via APNS)
                [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];            
    [[UIApplication sharedApplication] registerForRemoteNotifications];
         return YES;
}

이제 iOS10 버전 이하 에서이 방법을 구현하십시오.

    - (void)application:(UIApplication *)application
    didReceiveRemoteNotification:(NSDictionary *)userInfo
    fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler {
        NSLog(@"Notification received: %@", userInfo);
        if( SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO( @"10.0" ) )
        {
            NSLog( @"iOS version >= 10. Let NotificationCenter handle this one." );
            return;
        }
        NSLog( @"HANDLE PUSH, didReceiveRemoteNotification: %@", userInfo );
          else{
            handler( UIBackgroundFetchResultNewData );
}

    }

Apple은 iOS10에서이 두 가지 방법을 도입하여 푸시 알림을 수신합니다.

이 방법도 작성하십시오.

    // Receive displayed notifications for iOS 10 devices.
    #if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
    - (void)userNotificationCenter:(UNUserNotificationCenter *)center
           willPresentNotification:(UNNotification *)notification
             withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {

        NSDictionary *userInfo = notification.request.content.userInfo;

        NSLog(@"%@", userInfo);

            completionHandler( UNNotificationPresentationOptionAlert );
   }

-(void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void(^)())completionHandler{

    NSLog(@"Userinfo %@",response.notification.request.content.userInfo);
//    completionHandler(UNNotificationPresentationOptionAlert);
       }

그게 다야.

이 시도

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

iOS : 앱이 포 그라운드에있을 때 사용자가 원격 알림을 무시하도록하는 방법은 무엇입니까?

분류에서Dev

앱이 원격 알림을받는 동안 표시되는 UIAlertView

분류에서Dev

앱이 원격 알림을받는 동안 표시되는 UIAlertView

분류에서Dev

iOS Swift-푸시 알림 : 모든 원격 알림을 데이터베이스에 저장 (앱이 종료되는 동안에도)

분류에서Dev

앱이 백그라운드에있는 동안 로컬 알림 받기

분류에서Dev

앱이 포 그라운드 iOS에있는 동안 알림 트레이 (상단)에서 푸시 알림을받지 못함

분류에서Dev

앱이 포 그라운드에서 실행될 때 원격 알림을 무시하고 알림을 클릭하여 앱을 시작할 때 처리하는 방법은 무엇입니까?

분류에서Dev

앱이 포 그라운드에서 실행될 때 원격 알림을 무시하고 알림을 클릭하여 앱을 시작할 때 처리하는 방법은 무엇입니까?

분류에서Dev

Firebase 알림 onMessageReceived는 앱이 백그라운드에있을 때와 동일한 알림을 표시합니다.

분류에서Dev

iOS 자동 푸시가 application : didFinishLaunchingWithOptions : 앱이 백그라운드에있을 때 트리거하는 이유

분류에서Dev

앱이 백그라운드에있을 때 모든 알림을받는 방법은 무엇입니까?

분류에서Dev

앱이 백그라운드 iOS 8.4 (Swift)에있을 때 화면을 녹화하는 방법

분류에서Dev

iOS 앱이 백그라운드에있을 때 알림 및 페이로드 처리

분류에서Dev

iOS-백그라운드에서 원격 푸시 알림 처리 대. 전경

분류에서Dev

양식이 백그라운드에있는 동안 키보드 입력을 읽는 방법 C #

분류에서Dev

애플리케이션을 전면에 배치하지 않고 백그라운드 처리를 위해 BLE 장치에서 iOS 앱을 제어하는 방법

분류에서Dev

원격 알림 수신 후 백그라운드에서 iOS 앱 배지 설정

분류에서Dev

Thunderbird를 닫아도 백그라운드에서 알림을받을 수있는 방법이 있습니까?

분류에서Dev

원격 알림 방법을 설정하는 Apple 푸시 알림이 다른 방법보다 우선합니다.

분류에서Dev

앱이 백그라운드 모드에있는 동안 누락 된 CloudKit 알림을 받으려면 어떻게해야합니까?

분류에서Dev

Cordova 앱을 백그라운드에서 유지하는 방법 (iOS, Android, WP, BlackBerry)?

분류에서Dev

응용 프로그램이 백그라운드 iOS에있을 때 비디오를 녹화하는 방법

분류에서Dev

앱이 백그라운드에있을 때 원격 알림을 위해 루프에서 사운드 재생

분류에서Dev

iOS 원격 메시지에서 추가 데이터 GCM을 처리하는 방법

분류에서Dev

앱이 백그라운드 또는 멀티 태스킹보기에있는 동안 iOS보기 수정

분류에서Dev

배너에 더 오래 표시되는 원격 알림 기간을 관리하는 방법이 있습니까?

분류에서Dev

iOS : 앱이 백그라운드에있는 동안 Wi-Fi 장치에 연결된 소켓 모니터링

분류에서Dev

iOS : 앱이 백그라운드에있는 동안 Wi-Fi 장치에 연결된 소켓 모니터링

분류에서Dev

앱이 백그라운드에있을 때 ngCordova 로컬 알림을 클릭하면 사용자를 특정 페이지로 보내는 방법

Related 관련 기사

  1. 1

    iOS : 앱이 포 그라운드에있을 때 사용자가 원격 알림을 무시하도록하는 방법은 무엇입니까?

  2. 2

    앱이 원격 알림을받는 동안 표시되는 UIAlertView

  3. 3

    앱이 원격 알림을받는 동안 표시되는 UIAlertView

  4. 4

    iOS Swift-푸시 알림 : 모든 원격 알림을 데이터베이스에 저장 (앱이 종료되는 동안에도)

  5. 5

    앱이 백그라운드에있는 동안 로컬 알림 받기

  6. 6

    앱이 포 그라운드 iOS에있는 동안 알림 트레이 (상단)에서 푸시 알림을받지 못함

  7. 7

    앱이 포 그라운드에서 실행될 때 원격 알림을 무시하고 알림을 클릭하여 앱을 시작할 때 처리하는 방법은 무엇입니까?

  8. 8

    앱이 포 그라운드에서 실행될 때 원격 알림을 무시하고 알림을 클릭하여 앱을 시작할 때 처리하는 방법은 무엇입니까?

  9. 9

    Firebase 알림 onMessageReceived는 앱이 백그라운드에있을 때와 동일한 알림을 표시합니다.

  10. 10

    iOS 자동 푸시가 application : didFinishLaunchingWithOptions : 앱이 백그라운드에있을 때 트리거하는 이유

  11. 11

    앱이 백그라운드에있을 때 모든 알림을받는 방법은 무엇입니까?

  12. 12

    앱이 백그라운드 iOS 8.4 (Swift)에있을 때 화면을 녹화하는 방법

  13. 13

    iOS 앱이 백그라운드에있을 때 알림 및 페이로드 처리

  14. 14

    iOS-백그라운드에서 원격 푸시 알림 처리 대. 전경

  15. 15

    양식이 백그라운드에있는 동안 키보드 입력을 읽는 방법 C #

  16. 16

    애플리케이션을 전면에 배치하지 않고 백그라운드 처리를 위해 BLE 장치에서 iOS 앱을 제어하는 방법

  17. 17

    원격 알림 수신 후 백그라운드에서 iOS 앱 배지 설정

  18. 18

    Thunderbird를 닫아도 백그라운드에서 알림을받을 수있는 방법이 있습니까?

  19. 19

    원격 알림 방법을 설정하는 Apple 푸시 알림이 다른 방법보다 우선합니다.

  20. 20

    앱이 백그라운드 모드에있는 동안 누락 된 CloudKit 알림을 받으려면 어떻게해야합니까?

  21. 21

    Cordova 앱을 백그라운드에서 유지하는 방법 (iOS, Android, WP, BlackBerry)?

  22. 22

    응용 프로그램이 백그라운드 iOS에있을 때 비디오를 녹화하는 방법

  23. 23

    앱이 백그라운드에있을 때 원격 알림을 위해 루프에서 사운드 재생

  24. 24

    iOS 원격 메시지에서 추가 데이터 GCM을 처리하는 방법

  25. 25

    앱이 백그라운드 또는 멀티 태스킹보기에있는 동안 iOS보기 수정

  26. 26

    배너에 더 오래 표시되는 원격 알림 기간을 관리하는 방법이 있습니까?

  27. 27

    iOS : 앱이 백그라운드에있는 동안 Wi-Fi 장치에 연결된 소켓 모니터링

  28. 28

    iOS : 앱이 백그라운드에있는 동안 Wi-Fi 장치에 연결된 소켓 모니터링

  29. 29

    앱이 백그라운드에있을 때 ngCordova 로컬 알림을 클릭하면 사용자를 특정 페이지로 보내는 방법

뜨겁다태그

보관