在oc中的一段话:
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= _IPHONE80_
if(UMSYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0"))
{
//register remoteNotification types
UIMutableUserNotificationAction *action1 = [[UIMutableUserNotificationAction alloc] init];
action1.identifier = @"action1_identifier";
action1.title=@"Accept";
action1.activationMode = UIUserNotificationActivationModeForeground;//当点击的时候启动程序
UIMutableUserNotificationAction *action2 = [[UIMutableUserNotificationAction alloc] init]; //第二按钮
action2.identifier = @"action2_identifier";
action2.title=@"Reject";
action2.activationMode = UIUserNotificationActivationModeBackground;//当点击的时候不启动程序,在后台处理
action2.authenticationRequired = YES;//需要解锁才能处理,如果action.activationMode = UIUserNotificationActivationModeForeground;则这个属性被忽略;
action2.destructive = YES;
UIMutableUserNotificationCategory *categorys = [[UIMutableUserNotificationCategory alloc] init];
categorys.identifier = @"category1";//这组动作的唯一标示
[categorys setActions:@[action1,action2] forContext:(UIUserNotificationActionContextDefault)];
UIUserNotificationSettings *userSettings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlert
categories:[NSSet setWithObject:categorys]];
[UMessage registerRemoteNotificationAndUserNotificationSettings:userSettings];
} else{
//register remoteNotification types
[UMessage registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge
|UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert];
}
#else
//register remoteNotification types
[UMessage registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge
|UIRemoteNotificationTypeSound
|UIRemoteNotificationTypeAlert];
#endif
然后翻译成swift为:
if (UIDevice.currentDevice().systemVersion.compare("8.0.0") == .OrderedSame || UIDevice.currentDevice().systemVersion.compare("8.0.0") == .OrderedDescending){
let action1 = UIMutableUserNotificationAction();
action1.identifier = "action1_identifier"
action1.title = "Accept"
action1.activationMode = UIUserNotificationActivationMode.Foreground//当点击的时候启动程序
let action2 = UIMutableUserNotificationAction();//第二按钮
action2.identifier = "action2_identifier"
action2.title = "Reject"
action2.activationMode = UIUserNotificationActivationMode.Background
action2.authenticationRequired = true
action2.destructive = true
let categorys = UIMutableUserNotificationCategory();
categorys.identifier = "category1";//这组动作的唯一标示
categorys.setActions([action1, action2], forContext: UIUserNotificationActionContext.Default)
let userSettings = UIUserNotificationSettings(forTypes:[
.Badge,
.Sound,
.Alert],
categories: Set(arrayLiteral: categorys))
UMessage.registerRemoteNotificationAndUserNotificationSettings(userSettings)
} else {
UMessage.registerForRemoteNotificationTypes([.Badge, .Sound, .Alert])
}