iOS의 Silent Notification은 라이센스 화면이 필요하지 않습니까?
"Silent Notification이 기본적으로 유효하다"는 말이 나와서 깜짝 놀랐습니다.
iOS8(iPhone6Plus)을 통해 확인 중입니다.
푸시 알림을 보내는 서버 쪽에서 사용합니다니프티 구름 이동 브래킷.
응용 프로그램 설치
Nifty 클라우드 모바일 백엔드의 SDK 설치는 다음과 같습니다. Podfile을 만들면 됩니다.
target 'YOUR_APP_TARGET' do
pod 'NCMB', :git => 'https://github.com/NIFTYCloud-mbaas/ncmb_ios.git'
end
pod install
SDK를 설치할 수 있습니다.푸시 알림 설정으로 p12 형식의 APNs 인증서를 업로드해야 합니다.
참고: mobile backend 문서: SDK 안내서: 푸시 알림(iOS)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
//SDKの初期化
[NCMB setApplicationKey:@"YOUR_APP_KEY"
clientKey:@"YOUR_CLIENT_KEY"];
/*
UIUserNotificationType type = UIUserNotificationTypeBadge |
UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:type
categories:nil];
[[UIApplication sharedApplication] registerUserNotificationSettings:setting];
*/
//デバイストークンの要求
[[UIApplication sharedApplication] registerForRemoteNotifications];
return YES;
}
//デバイストークンが取得できた時に呼び出されるデリゲートメソッド
-(void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
//NCMBInstallation作成
NCMBInstallation *installation = [NCMBInstallation currentInstallation];
//デバイストークンをセット
[installation setDeviceTokenFromData:deviceToken];
//ニフティクラウド mobile backendのデータストアに登録
[installation saveInBackgroundWithBlock:^(NSError *error) {
if(!error){
//端末情報の登録が成功した場合の処理
NSLog(@"installation saved.");
} else {
//端末情報の登録が失敗した場合の処理
NSLog(@"error:%@", error);
}
}];
}
//Content-availableが1のプッシュ通知が受信されたときに呼び出されるデリゲートメソッド
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
//mobile backendのコンテンツを取得
NCMBQuery *query = [NCMBQuery queryWithClassName:@"contents"];
[query countObjectsInBackgroundWithBlock:^(int number, NSError *error) {
if (error){
NSLog(@"search error:%@", error);
completionHandler(UIBackgroundFetchResultNoData);
} else {
if (number > 0){
//バッジナンバーを更新
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:number];
//completionHandlerを呼び出す
completionHandler(UIBackgroundFetchResultNewData);
} else {
completionHandler(UIBackgroundFetchResultNoData);
}
}
}];
}
애플리케이션이 백그라운드에서 Silent Notification을 수신하려는 경우Capabilities의 Background modes를 ON으로 설정
원격 공지를 설정해야 합니다.
응용 프로그램 실행
장치 영패를 얻을 수 있습니다. 모바일 백엔드에 저장할 수 있습니다!
알림을 푸시하는 허가 화면 device Token이 없어도 얻을 수 있습니다!
푸시 알림 보내기
실행 결과
위의 예시 코드에서 새로운 내용이 있으면badgeNumber를 강제로 설정하려고 시도합니다.
따라서 권한이 필요한 것 같습니다. 오류 메시지가 표시됩니다.
2015-08-05 16:02:04.779 PushNotificationSample[325:9402] installation saved.
2015-08-05 16:02:30.669 PushNotificationSample[325:9402] Attempting to badge the application icon but haven't received permission from the user to badge the application
단, 정해진 시간에만 앱의 내용을 업데이트하면Silent Notification에서 푸시 알림이 표시되지 않는 라이센스 화면을 사용할 수 있습니다!
응용 프로그램의 백그라운드 업데이트가 비활성화되면 알림을 받아도 아무것도 할 수 없습니다
푸시 알림은 주로 응용 프로그램의 사용자에게 무엇을 알릴 것인가에 사용된다
라이센스 화면 같은 디스플레이는 기본값일 수 있습니다.
작은 지식이야.
Reference
이 문제에 관하여(iOS의 Silent Notification은 라이센스 화면이 필요하지 않습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ykokw/items/238bf6b1dcccfa00f9ea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)