Parse에서 nifty 클라우드 모바일 백으로 갈아타보세요!(iOS 알림 누름)

주지


마지막 iOS 데이터 저장소 버전의 글의 계속, 알림 전송을 시도했습니다!
코드를 계속 쓰고 있지만 개발자가 아닌 사람에게는 니피엠베이스가 "중계 상담창"를 설정했으니 꼭 편하게 하세요!

환승의 기본 절차

  • (1) SDK 가져오기
  • (2) 응용 프로그램에서 SDK를 사용하는 선언
  • (3) 허운모바일백으로 앱 제작, 취득키(Application Key, Client Key)
  • (4) 애플리케이션에서 초기화
  • (5) 설치 코드 변경
  • (6)추송통지증서등록
  • 기타: 데이터 전송, 설정 변경
  • (1)~(4) 지난번뉴스. 보세요!
    실제로 할게요!

    전제 조건


    Parse에서 실행 중인 밀어넣기 알림 기능의 응용 프로그램 항목을 nifty 클라우드 모바일 백으로 옮길 때
    그래서 저는 옆에 있는 것들 아래.
  • 애플의 개발자 등록Developer Program

  • Push 알림용 인증서(p12 파일)가 생성되었습니다.
    만드는 방법에는 여러 가지 문서가 있으니 아직 없으면 꼭 보세요.
  • Nifty Mobile backend의 iOS 압력 알림 준비: 문서
  • Parse의 iOS Push 알림문서
  • 구현 시나리오
    Parse의Quickstart 프로젝트는 기본적으로 터미널 로그인 실현 등 알림 전송의 사용을 포함한다.
  • (5) 설치 코드 변경


    다음과 같이 AppDelegate의 d i d F inishLaunchingWithOptions 방법을 수정합니다.
    수정 전
    
       if (application.applicationState != UIApplicationStateBackground) {
            // Track an app open here if we launch with a push, unless
            // "content_available" was used to trigger a background push (introduced in iOS 7).
            // In that case, we skip tracking here to avoid double counting the app-open.
            BOOL preBackgroundPush = ![application respondsToSelector:@selector(backgroundRefreshStatus)];
            BOOL oldPushHandlerOnly = ![self respondsToSelector:@selector(application:didReceiveRemoteNotification:fetchCompletionHandler:)];
            BOOL noPushPayload = !launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey];
            if (preBackgroundPush || oldPushHandlerOnly || noPushPayload) {
                [PFAnalytics trackAppOpenedWithLaunchOptions:launchOptions];
            }
        }
    
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
        if ([application respondsToSelector:@selector(registerUserNotificationSettings:)]) {
            UIUserNotificationType userNotificationTypes = (UIUserNotificationTypeAlert |
                                                            UIUserNotificationTypeBadge |
                                                            UIUserNotificationTypeSound);
            UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:userNotificationTypes
                                                                                     categories:nil];
            [application registerUserNotificationSettings:settings];
            [application registerForRemoteNotifications];
        } else
    #endif
        {
            [application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
                                                             UIRemoteNotificationTypeAlert |
                                                             UIRemoteNotificationTypeSound)];
        }
    
    
    application: d i d F inish Launching With Options 메소드 내 수정
    수정 후
    
    
    if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1){
    
        //iOS8以上での、DeviceToken要求方法
    
        //通知のタイプを設定したsettingを用意
        UIUserNotificationType type = UIUserNotificationTypeAlert |
        UIUserNotificationTypeBadge |
        UIUserNotificationTypeSound;
        UIUserNotificationSettings *setting;
        setting = [UIUserNotificationSettings settingsForTypes:type
                                                    categories:nil];
    
        //通知のタイプを設定
        [[UIApplication sharedApplication] registerUserNotificationSettings:setting];
    
        //DevoceTokenを要求
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    } else {
    
        //iOS8未満での、DeviceToken要求方法
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIRemoteNotificationTypeAlert |
          UIRemoteNotificationTypeBadge |
          UIRemoteNotificationTypeSound)];
    }
    
    응용 프로그램: d i d R e g i s t e r F r R e m o t e N o tification WithDeviceToken 방법을 사용하여 터미널 정보를 데이터 저장소에 등록합니다.
    수정 전
        PFInstallation *currentInstallation = [PFInstallation currentInstallation];
        [currentInstallation setDeviceTokenFromData:deviceToken];
        [currentInstallation saveInBackground];
    
        [PFPush subscribeToChannelInBackground:@"" block:^(BOOL succeeded, NSError *error) {
            if (succeeded) {
                NSLog(@"ParseStarterProject successfully subscribed to push notifications on the broadcast channel.");
            } else {
                NSLog(@"ParseStarterProject failed to subscribe to push notifications on the broadcast channel.");
            }
        }];
    
    수정 후
    //端末情報を扱うNCMBInstallationのインスタンスを作成
    NCMBInstallation *installation = [NCMBInstallation currentInstallation];
    
    //Device Tokenを設定
    [installation setDeviceTokenFromData:deviceToken];
    
    //端末情報をデータストアに登録
    [installation saveInBackgroundWithBlock:^(NSError *error) {
        if(!error){
            //端末情報の登録が成功した場合の処理
        } else {
            //端末情報の登録が失敗した場合の処理
        }
    }];
    
    

    (6) 단추로 인증서 등록 알림


    Nifty mobile backend 관리 화면에서 알림을 푸시할 수 있도록 설정합니다.

    알림 인증서 p12 업로드



    (7) 해보자!


    프로그램을 만들고 시작할 때 "단추 알림 허가"를 선택하십시오.
    터미널이 등록되었는지 확인합니다.

    밀어넣기 공지를 보내보도록 하겠습니다.

    통지가 왔다!

    기타: 데이터 이동, 설정 변경 등


    여기에 관해서 나는 매우 어렵다고 생각하기 때문에 아는 범위 내에서 써 보아라.
  • Parse는 Export 기능이 있고 Data migration 도구도 출시되었습니다.
  • Neft Crowd mobile backend에서 새로운 데이터 저장소 클래스를 만들 때 CSV, Json, txt는 모두 가져올 수 있지만 기존의 회원 데이터나 installation(알림 단말기 전송) 데이터는 가져올 수 없습니다.
  • 응용 프로그램의 설정이 각각 다르니 연구해 보는 것이 좋습니다!
  • Nifty mbaS에 "중계 상담창"이 설치되어 있으니 꼭 편하게 하세요!
  • 좋은 웹페이지 즐겨찾기