Parse에서 nifty 클라우드 모바일 백으로 갈아타보세요!(iOS 알림 누름)
주지
마지막 iOS 데이터 저장소 버전의 글의 계속, 알림 전송을 시도했습니다!
코드를 계속 쓰고 있지만 개발자가 아닌 사람에게는 니피엠베이스가 "중계 상담창"를 설정했으니 꼭 편하게 하세요!
환승의 기본 절차
실제로 할게요!
전제 조건
Parse에서 실행 중인 밀어넣기 알림 기능의 응용 프로그램 항목을 nifty 클라우드 모바일 백으로 옮길 때
그래서 저는 옆에 있는 것들 아래.
Push 알림용 인증서(p12 파일)가 생성되었습니다.
만드는 방법에는 여러 가지 문서가 있으니 아직 없으면 꼭 보세요.
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) 해보자!
프로그램을 만들고 시작할 때 "단추 알림 허가"를 선택하십시오.
터미널이 등록되었는지 확인합니다.
밀어넣기 공지를 보내보도록 하겠습니다.
통지가 왔다!
기타: 데이터 이동, 설정 변경 등
여기에 관해서 나는 매우 어렵다고 생각하기 때문에 아는 범위 내에서 써 보아라.
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)];
}
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)];
}
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 {
//端末情報の登録が失敗した場合の処理
}
}];
Nifty mobile backend 관리 화면에서 알림을 푸시할 수 있도록 설정합니다.
알림 인증서 p12 업로드
↓
(7) 해보자!
프로그램을 만들고 시작할 때 "단추 알림 허가"를 선택하십시오.
터미널이 등록되었는지 확인합니다.
밀어넣기 공지를 보내보도록 하겠습니다.
통지가 왔다!
기타: 데이터 이동, 설정 변경 등
여기에 관해서 나는 매우 어렵다고 생각하기 때문에 아는 범위 내에서 써 보아라.
여기에 관해서 나는 매우 어렵다고 생각하기 때문에 아는 범위 내에서 써 보아라.
Reference
이 문제에 관하여(Parse에서 nifty 클라우드 모바일 백으로 갈아타보세요!(iOS 알림 누름)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/thuydg@github/items/ce63423d25ff5ddacac5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)