Skip to content

消息管理

本文介绍了如何对消息进行管理, 包括设备告警和事件消息, 自动化和场景执行结果消息

功能概述

objc
#import <QuecUserKit/QuecUserKit.h>
/// 初始化
[QuecUserMessageService sharedInstance]

删除消息

接口说明

删除用户消息

objc
- (void)deleteMessageByMsgId:(NSString *)msgId
                    language:(NSString *)language
                     success:(QuecVoidBlock)success
                     failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
msgId阅读的消息ID列表 多个ID使用英文逗号分隔
language语音
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[[QuecUserMessageService sharedInstance] deleteMessageByMsgId:@"messageId" language:@"cn" success:^{
        /// Next Action
    } failure:^(NSError *error) {
        NSLog(@"check error: %@", error);
    }];

阅读消息

接口说明

单个及批量阅读消息(根据标签阅读调用下面新Api)

objc
- (void)readMessageByMsgIdList:(NSString *)msgIdList
                        msgType:(int)msgType
                        success:(void(^)(QuecReadMsgModel *model))success
                        failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
msgIdList阅读的消息ID列表 多个ID使用英文逗号分隔,如果不传,会阅读所有消息
msgType1:设备通知,2:设备告警,3:设备故障,4:系统消息;接收的消息类型任意组合,多个类型使用英文逗号分隔
success接口请求成功回调
failure接口请求失败回调

QuecReadMsgModel属性定义

参数类型说明
successListNSArray<QuecReadMsgListModel *>成功列表
failureListNSArray<QuecReadMsgListModel *>失败列表

QuecReadMsgListModel属性定义

参数类型说明
msgIDNSString消息ID
failureMsgNSString阅读失败原因(仅失败列表有此字段)

示例代码

objc
[QuecUserMessageService.sharedInstance readMessageByMsgIdList:@"MsgIdList" msgType:1 success:^(QuecReadMsgModel * _Nonnull model) {
        /// Next Action
    } failure:^(NSError *error) {
        NSLog(@"check error: %@", error);
    }];

查询消息列表

接口说明

查询用户的消息列表(根据消息类型查询,标签查询调用下方新Api)

objc
- (void)getUserMessageListByPageNumber:(NSInteger)pageNumber
                              pageSize:(NSInteger)pageSize
                               msgType:(NSInteger)msgType
                                isRead:(BOOL)isRead
                             deviceKey:(NSString *)deviceKey
                            productKey:(NSString *)productKey
                               success:(void(^)(NSArray<QuecUserMessageListModel *> *list, NSInteger total))success
                               failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
pageNumber查询的列表页,默认为 1
pageSize查询的页大小,默认 10
msgType1:设备通知,2:设备告警,3:设备故障,4:系统消息;接收的消息类型任意组合,多个类型使用英文逗号分隔
isRead是否已读
deviceKeydevice key
productKeyproduct key
success接口请求成功回调
failure接口请求失败回调

QuecUserMessageListModel属性定义

参数类型说明
msgIdNSString消息ID
msgTypeNSInteger/// 消息类型 1-设备通知 2-设备告警 3-设备故障 4-系统消息
isReadBOOL是否已读
titleNSString标题
contentNSString内容
pkNSStringProduct Key
dkNSStringDevice Key
addTimeNSUInteger添加时间
readTimeNSUInteger阅读时间
shareCodeNSString分享code
sceneIconNSString场景图标
sceneNameNSString场景名称
sceneExecuteTimeNSString场景执行时间
executeIdNSString场景执行Id
logIdNSString自动化日志id
automationIdNSString自动化Id
firstLabelNSString消息一级分类
secondaryLabelNSString消息二级分类

示例代码

objc
[QuecUserMessageService.sharedInstance getUserMessageListByPageNumber:1 pageSize:10 msgType:1 isRead:NO deviceKey:@"deviceKey" productKey:@"productKey" success:^(NSArray<QuecUserMessageListModel *> * _Nonnull list, NSInteger total) {
        /// Next Action
    } failure:^(NSError *error) {
        NSLog(@"check error: %@", error);
    }];

上传pushToken

接口说明

上传pushToken,需要先获取 阿里云 deviceid,海外需要google fcmtoken

objc
- (void)addPushToken:(NSString *)pushToken
              success:(QuecVoidBlock)success
              failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
pushTokenpushToken aliyun‘s deviceid , google's fcmtoken
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecUserMessageService.sharedInstance addPushToken:@"pushToken" success:^{
            /// Next Action
        } failure:^(NSError *error) {
            NSLog(@"check error: %@", error);
        }];

删除pushToken

接口说明

删除已绑定pushToken,需要获取缓存的 阿里云 deviceid,海外需要google fcmtoken

objc
- (void)deletePushToken:(NSString *)pushToken
                 success:(QuecVoidBlock)success
                 failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
pushTokenpushToken aliyun‘s deviceid , google's fcmtoken
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[QuecUserMessageService.sharedInstance deletePushToken:@"pushToken" success:^{
            /// Next Action
        } failure:^(NSError *error) {
            NSLog(@"check error: %@", error);
        }];

查询消息列表

接口说明

通过标签查询消息列表

objc
- (void)getUserMessageListByPageNumber:(NSInteger)pageNumber
                              pageSize:(NSInteger)pageSize
                        firstLabelList:(NSString *)firstLabelList
                    secondaryLabelList:(NSString *)secondaryLabelList
                                isRead:(BOOL)isRead
                             deviceKey:(NSString * _Nullable)deviceKey
                            productKey:(NSString * _Nullable)productKey
                               success:(void (^)(NSArray<QuecUserMessageListModel *> *, NSInteger))success
                               failure:(void (^)(NSError *))failure;

参数说明

参数是否必传说明
pageNumber查询的列表页,默认为 1
pageSize查询的页大小,默认 10
firstLabelList1:系统 2:智能 3:设备,多个使用","拼接
secondaryLabelList1:隐私 2:服务 3:自动化 4:场景 5:设备通知 6:设备告警 7:设备故障 8:ota,多个使用","拼接
isRead是否已读
deviceKey设备dk
productKey产品pk
success接口请求成功回调
failure接口请求失败回调

QuecUserMessageListModel属性定义

参数类型说明
msgIdNSString消息ID
msgTypeNSInteger/// 消息类型 1-设备通知 2-设备告警 3-设备故障 4-系统消息
isReadBOOL是否已读
titleNSString标题
contentNSString内容
pkNSStringProduct Key
dkNSStringDevice Key
addTimeNSUInteger添加时间
readTimeNSUInteger阅读时间
shareCodeNSString分享code
sceneIconNSString场景图标
sceneNameNSString场景名称
sceneExecuteTimeNSString场景执行时间
executeIdNSString场景执行Id
logIdNSString自动化日志id
automationIdNSString自动化Id
firstLabelNSString消息一级分类
secondaryLabelNSString消息二级分类

示例代码

objc
[QuecUserMessageService.sharedInstance getUserMessageListByPageNumber:1 pageSize:10 firstLabelList:@"firstLabelList" secondaryLabelList:@"secondaryLabelList" isRead:NO deviceKey:@"dk" productKey:@"pk" success:^(NSArray<QuecUserMessageListModel *> * _Nonnull, NSInteger) {
        /// Next Action
    } failure:^(NSError * _Nonnull) {
        NSLog(@"check error: %@", error);
    }]

阅读消息

接口说明

通过标签标记阅读消息

objc
- (void)readMessageByMsgIdList:(NSString * _Nullable)msgIdList
                firstLabelList:(NSString * _Nullable)firstLabelList
            secondaryLabelList:(NSString * _Nullable)secondaryLabelList
                       success:(void (^)(QuecReadMsgModel *model))success
                       failure:(void (^)(NSError *))failure;

参数说明

参数是否必传说明
msgIdList阅读的消息ID列表 多个ID使用英文逗号分隔,如果不传,会阅读所有消息
firstLabelList1:系统 2:智能 3:设备,多个使用","拼接
secondaryLabelList1:隐私 2:服务 3:自动化 4:场景 5:设备通知 6:设备告警 7:设备故障 8:ota,多个使用","拼接
success接口请求成功回调
failure接口请求失败回调

QuecReadMsgModel属性定义

参数类型说明
successListNSArray<QuecReadMsgListModel *>成功列表
failureListNSArray<QuecReadMsgListModel *>失败列表

QuecReadMsgListModel属性定义

参数类型说明
msgIDNSString消息ID
failureMsgNSString阅读失败原因(仅失败列表有此字段)

示例代码

objc
[QuecUserMessageService.sharedInstance readMessageByMsgIdList:@"messageId" firstLabelList:@"firstLabelList" secondaryLabelList:@"" success:^(QuecReadMsgModel * _Nonnull msgModel) {
        /// Next Action
    } failure:^(NSError * _Nonnull error) {
        NSLog(@"check error: %@", error);
    }];

获取未读消息数

接口说明

获取未读消息数,可用于标记用户消息阅读状态

objc
- (void)getMsgStatsWithSuccess:(void(^)(QuecUserMessageStatsModel *statsModel))success failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
success接口请求成功回调
failure接口请求失败回调

QuecUserMessageStatsModel属性定义

参数类型说明
smartQuecUserMessageUnReadModel智能相关消息
systemQuecUserMessageUnReadModel系统相关消息
deviceQuecUserMessageUnReadModel设备相关消息

QuecUserMessageUnReadModel属性定义

参数类型说明
readNSInteger已读消息数
unReadNSInteger未读消息数

示例代码

objc
[QuecUserMessageService.sharedInstance getMsgStatsWithSuccess:^(QuecUserMessageStatsModel * _Nonnull statsModel) {
        /// Next Action
    } failure:^(NSError *error) {
        NSLog(@"check error: %@", error);
    }];

用户接收推送的消息类型

接口说明

获取用户接收推送的消息类型

objc
- (void)getMsgPushSettingWithSuccess:(void(^)(QuecPushSettingModel *data))success failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
success接口请求成功回调
failure接口请求失败回调

QuecPushSettingModel属性定义

参数类型说明
deviceNotifyBOOL设备推送
smartNotifyBOOL智能推送
systemNotifyBOOL系统推送
deviceQuecPushSettingItemModel设备推送子属性设置情况
smartQuecPushSettingItemModel智能推送子属性设置情况
systemQuecPushSettingItemModel系统推送子属性设置情况

QuecPushSettingItemModel属性定义

参数类型说明
appBOOL系统推送是否开启
smsBOOL短信推送是否开启
voiceBOOL语音推送是否开启

示例代码

objc
[[QuecUserMessageService sharedInstance] getMsgPushSettingWithSuccess:^(QuecPushSettingModel *pushSettingModel) {
        /// Next Action
    } failure:^(NSError *error) {
        NSLog(@"check error: %@", error);
    }];

设置用户接收推送的消息类型

接口说明

用户自定义设置接收推送的消息类型

objc
- (void)setMsgPushSettingWithConfig:(QuecPushSettingModel *)config success:(QuecVoidBlock)success failure:(QuecErrorBlock)failure;

参数说明

参数是否必传说明
configQuecPushSettingModel属性定义同上【用户接收推送的消息类型】
success接口请求成功回调
failure接口请求失败回调

示例代码

objc
[[QuecUserMessageService sharedInstance] setMsgPushSettingWithConfig:model success:^{
        /// Next Action
    } failure:^(NSError *error) {
        NSLog(@"check error: %@", error);
    }];