iOS 학습 노트 의 원 격 푸 시,침묵 푸 시 및 사용자 정의 메시지 푸 시
5097 단어 원 격 푸 시묵묵 부 답사용자 정의 메시지 전송
(1).오픈 시 프론트 데스크 에 적용
(2).오픈 시 배경 에 적용
(3).시작 되 지 않 은 응용 프로그램(응용 프로그램 이 죽 임)
애플 APNS 서버 에서 원 격 으로 푸 시 할 때:
1.(1)상태 에 있 으 면 소 리 를 내지 않 고 app Delegate 의 프 록 시 방법 didReceiveRemote Notification 을 직접 호출 합 니 다.이 때 시스템 의 팝 업 창 알림 을 받 으 려 면 사용자 정의 팝 업 창,알림 음,진동(팝 업 창 참조:ForeNotification ( 로 컬 다운로드 ))
AudioServicesPlaySystemSound(1007);//
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);//
2.(2)상태 에 있 으 면 알림 음 을 보 내 고 푸 시 메 시 지 를 누 르 면 app Delegate 의 프 록 시 방법 didReceiveRemote Notification 을 호출 합 니 다.3.(3)상태 에 있 으 면 알림 음 을 보 내 고 푸 시 메 시 지 를 누 르 면 응용 프로그램 이 열 립 니 다.아래 방법 에 launchOptions 라 는 매개 변 수 를 가 져 옵 니 다
application:didReceiveRemoteNotification:fetchCompletionHandler:
이 방법 이 실현 되면 이 방법 을 사용 합 니 다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *remoteNotification = [launchOptions objectForKey: UIApplicationLaunchOptionsRemoteNotificationKey];
if (remoteNotification) {
// BOOL ,
self.isLaunchedByNotification = YES;
}else{
}
[self checkIsLaunchedByNotification];
return YES;
}
원 격 푸 시 를 받 은 후 메시지 창 으로 이동 가능:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSDictionary *aps = [userInfo valueForKey:@"aps"];
NSDictionary *alert = [aps valueForKey:@"alert"];
NSString * body = alert[@"body"];
if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive) {
//
[EBForeNotification handleRemoteNotification:@{@"aps":@{@"alert":[NSString stringWithFormat:@"%@",body]}} soundID:1312];
}else{
//
[self gotoMessageVC];
}
}
#pragma mark -
- (void)checkIsLaunchedByNotification{
if (self.isLaunchedByNotification) {
[self gotoMessageVC];
}
}
#pragma mark - ( , , , )
- (void)clickBannerView:(NSNotification *)notification{
NSDictionary * dict = notification.object;
[self gotoMessageVC];
}
#pragma mark - ( / )
- (void)gotoMessageVC{
if([self.window.rootViewController isEqual:self.tabBarController]){
if([self.tabBarController.selectedViewController isKindOfClass:[UINavigationController class]]){
UINavigationController * nav = self.tabBarController.selectedViewController;
if (![nav.topViewController isKindOfClass:[MessagesViewController class]]) {
MessagesViewController *messageVC = [[MessagesViewController alloc] init];
messageVC.hidesBottomBarWhenPushed = YES;
[nav.visibleViewController.navigationController pushViewController:messageVC animated:YES];
}
}
}
}
묵묵 부 답침묵 푸 시 를 받 으 려 면 만족 해 야 할 조건:
1.프론트/백 엔 드 에 적용(죽 으 면 받 을 수 없 음)
2.응용 이 실현 되 었 다
application:didReceiveRemoteNotification:fetchCompletionHandler:
3.만약 에 실현 되 지 않 았 다 면application:didReceiveRemoteNotification:,
응용 은 프론트 데스크 에서 만 침묵 추 송 을 받 을 수 있 고 백 스테이지 에 응용 할 때 침묵 추 송 을 받 을 수 없다.사용자 정의 메시지 전송
소개:극광 푸 시 는 사용자 정의 메시지 푸 시 를 제공 합 니 다.이러한 푸 시 는 프론트 데스크 에 응용 되 어야 만 받 을 수 있 습 니 다.배경/죽 임 을 당 했 을 때 사용자 정의 메시지 가 저 장 됩 니 다.응용 프로그램 이 프론트 에 있 을 때 까지 사용 할 수 있 습 니 다.
사용 장면:프론트 데스크 에서 대량의 데 이 터 를 처리 해 야 할 때 사용자 정의 메 시 지 를 사용 할 수 있 습 니 다.예 를 들 어 특정한 모듈 을 사용 하려 면 업데이트 가 필요 합 니 다.이때 배경 에서 사용자 정의 메 시 지 를 보 내 고 응용 프로그램 이 시작 되면 자동 으로 다운로드 할 수 있 습 니 다.
// ,
//
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveJPushCustomMessage:) name:kJPFNetworkDidReceiveMessageNotification object:nil];
// JPush
- (void)receiveJPushCustomMessage:(NSNotification *)notification {
NSDictionary *userInfo = [notification userInfo];
NSString *title = [userInfo valueForKey:@"title"];
NSString *content = [userInfo valueForKey:@"content"];
NSDictionary *extra = [userInfo valueForKey:@"extras"];
}
요약:1.백 스테이지/프론트 데스크/피 살 시 일반 원 격 푸 시 를 받 을 수 있 습 니 다.
2.죽 임 을 당 했 을 때 Background Fetch 를 통 해 짧 은 시간 에 깨 울 수 있 습 니 다.
3.백 스테이지/프론트 데스크 에 적용 할 때 침묵 푸 시 를 통 해 데 이 터 를 수정 할 수 있 습 니 다.
4.사용자 정의 메시지 적용
자,이상 이 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.