iOS10富文本推送--UIMutableUserNotificationAction
程序员文章站
2022-05-23 21:19:24
appdelagate文件
添加action
根据以下contentextension info.plist文件中的配置决定category的设置,两者必须一致
宏定义采用下列代码:
//推送...
appdelagate文件
添加action
根据以下contentextension info.plist文件中的配置决定category的设置,两者必须一致
宏定义采用下列代码:
//推送相关设置 #define action_category_identifier_image @"image_category" //图片类别标识符 #define action_category_identifier_audio @"audio_category" //音频类别标识符 #define action_category_identifier_movie @"movie_category" //视频类别标识符 #define action_identifier_image_confirm @"imageconfirmaction" //图片确认按钮 #define action_identifier_image_concel @"imageconcelaction" //图片取消按钮 #define action_identifier_audio_confirm @"audioconfirmaction" //音频确认按钮 #define action_identifier_audio_concel @"audioconcelaction" //音频取消按钮 #define action_identifier_movie_confirm @"movieconfirmaction" //视频确认按钮 #define action_identifier_movie_concel @"movieconcelaction" //视频取消按钮 #define action_title_image_confirm @"查看" //图片确认按钮标题 #define action_title_image_concel @"忽略" //图片取消按钮标题 #define action_title_audio_confirm @"查看" //音频确认按钮标题 #define action_title_audio_concel @"忽略" //音频取消按钮标题 #define action_title_movie_confirm @"查看" //视频确认按钮标题 #define action_title_movie_concel @"忽略" //视频取消按钮标题
添加相应类别的aciton,一个类别必须对应一个category,
在下面这个方法里面执行,
- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions
//添加相应类别的aciton,一个类别必须对应一个category - (void)addnotificationaction{ //image_category uimutableusernotificationaction *imageconfirmaction = [self creatnotificationactionidentifier:action_identifier_image_confirm title:action_title_image_confirm activationmode:uiusernotificationactivationmodeforeground]; imageconfirmaction.authenticationrequired = yes; imageconfirmaction.destructive = yes; uimutableusernotificationaction *imageconcelaction = [self creatnotificationactionidentifier:action_identifier_image_concel title:action_title_image_concel activationmode:uiusernotificationactivationmodebackground]; uimutableusernotificationcategory *imagecategory = [self creatnotificationcategoryidentifier:action_category_identifier_image setactions:@[imageconfirmaction,imageconcelaction] forcontext:uiusernotificationactioncontextdefault]; //audio_category uimutableusernotificationaction *audioconfirmaction = [self creatnotificationactionidentifier:action_identifier_audio_confirm title:action_title_audio_confirm activationmode:uiusernotificationactivationmodeforeground]; audioconfirmaction.authenticationrequired = yes; audioconfirmaction.destructive = yes; uimutableusernotificationaction *audioconcelaction = [self creatnotificationactionidentifier:action_identifier_audio_concel title:action_title_audio_concel activationmode:uiusernotificationactivationmodebackground]; uimutableusernotificationcategory *audiocategory = [self creatnotificationcategoryidentifier:action_category_identifier_audio setactions:@[audioconfirmaction,audioconcelaction] forcontext:uiusernotificationactioncontextdefault]; //movie_category uimutableusernotificationaction *movieconfirmaction = [self creatnotificationactionidentifier:action_identifier_movie_confirm title:action_title_movie_confirm activationmode:uiusernotificationactivationmodeforeground]; movieconfirmaction.authenticationrequired = yes; movieconfirmaction.destructive = yes; uimutableusernotificationaction *movieconcelaction = [self creatnotificationactionidentifier:action_identifier_movie_concel title:action_title_movie_concel activationmode:uiusernotificationactivationmodebackground]; uimutableusernotificationcategory *moviecategory = [self creatnotificationcategoryidentifier:action_category_identifier_movie setactions:@[movieconfirmaction,movieconcelaction] forcontext:uiusernotificationactioncontextdefault]; nsset *categories = [nsset setwithobjects:imagecategory,audiocategory,moviecategory,nil]; uiusernotificationtype types = (uiusernotificationtypealert| uiusernotificationtypesound| uiusernotificationtypebadge); uiusernotificationsettings *settings; settings = [uiusernotificationsettings settingsfortypes:types categories:categories]; [[uiapplication sharedapplication] registerusernotificationsettings:settings]; }
创建一个category
//创建一个category - (uimutableusernotificationcategory*)creatnotificationcategoryidentifier:(nsstring *)identifier setactions:(nullable nsarray *)actions forcontext:(uiusernotificationactioncontext)context { uimutableusernotificationcategory *category = [[uimutableusernotificationcategory alloc] init]; category.identifier = identifier;//这组动作的唯一标示 [category setactions:actions forcontext:context]; return category; }
创建一个action
//创建一个action -(uimutableusernotificationaction *)creatnotificationactionidentifier:(nsstring *)identifier title:(nsstring *)title activationmode:(uiusernotificationactivationmode)activationmode { uimutableusernotificationaction *action = [[uimutableusernotificationaction alloc] init]; //第二按钮 action.identifier = identifier; action.title = title; action.activationmode = activationmode; return action; }
上一篇: 故事形式讲解javaScript中创建对象和Java创建对象的区别
下一篇: 弟媳有点事