IOS 로컬 푸시 학습 수기
먼저 appdelegate에 등록합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil]];//
// Override point for customization after application launch.
return YES;
}
그리고 구체적인viewcontroller에서 푸시:
- (IBAction)localPushNow:(id)sender {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//
UILocalNotification*notification = [[UILocalNotification alloc]init];
NSDate * pushDate = [NSDate dateWithTimeIntervalSinceNow:10];
if (notification != nil) {
notification.fireDate = pushDate;
notification.timeZone = [NSTimeZone defaultTimeZone];
notification.repeatInterval = kCFCalendarUnitDay;
notification.soundName = UILocalNotificationDefaultSoundName;
notification.alertBody = @"hello,world";
notification.applicationIconBadgeNumber = 0;
NSDictionary*info = [NSDictionary dictionaryWithObject:@"test" forKey:@"name"];
notification.userInfo = info;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
});
}
메시지를 받을 필요가 있으면 다시 쓰는 방법은 다음과 같습니다.
앱delegate에서 푸시 메시지가 수신됩니다.
//
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
NSLog(@"%@",notification.alertBody);
UILabel*label = [[UILabel alloc]init];
label.frame = CGRectMake(0, 0, 160, 20);
label.layer.cornerRadius = 10;
label.backgroundColor = [UIColor blackColor];
label.text = notification.alertBody;
label.textColor = [UIColor whiteColor];
label.font = [UIFont systemFontOfSize:12];
label.textAlignment = NSTextAlignmentCenter;
[self.window addSubview:label];
}
이 과정에서 다음과 같은 상황이 발생할 수 있습니다.
Attempting to schedule a local notification……with a sound but haven't received permission from the user to play sounds
Attempting to schedule a local notification……with an alert but haven't received permission from the user to display alerts
등록하지 않았거나 설정에서 푸시 기능이 켜지지 않았기 때문일 수도 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.