消息推送管理

更新时间:2024-08-22 02:50:27下载pdf

本文介绍如何管理消息推送。

ThingSmartBusinessExtensionKit 组件提供了比 ThingSmartMessage 更多的功能。如果您仍直接在使用 ThingSmartMessage,请参考 此链接

查询消息推送开关状态

根据消息类型,查询推送开关。消息类型分为:

  • 告警消息
  • 家庭消息
  • 通知消息
  • 营销消息

接口说明

- (void)getMessagePushSwitchStatusWithType:(ThingSmartMessagePushSwitchType)type
                            success:(ThingSuccessBOOL _Nullable)success
                            failure:(ThingFailureError _Nullable)failure;

参数说明

参数 说明
type 消息类型:
  • ThingSmartMessagePushSwitchTypeDeviceAlarm:告警消息
  • ThingSmartMessagePushSwitchTypeFamily:家庭消息
  • ThingSmartMessagePushSwitchTypeNotice:通知消息
  • ThingSmartMessagePushSwitchTypeMarketing:营销消息
success 成功回调,返回推送开关状态
failure 失败回调,返回失败原因

示例代码

Objective-C

[[ThingSmartMessagePushSetting new] getMessagePushSwitchStatusWithType:ThingSmartMessagePushSwitchTypeFamily success:^(BOOL result) {

} failure:^(NSError *error) {

}];

Swift

ThingSmartMessagePushSetting().getMessagePushSwitchStatus(with: .family) { result in

} failure: { error in

}

设置消息推送开关

接口说明

- (void)setMessagePushSwitchStatusWithRequestModel:(ThingSmartMessagePushSwitchRequestModel *_Nonnull)requestModel
                    success:(__nullable ThingSuccessHandler)success
                    failure:(__nullable ThingFailureError)failure;

参数说明

参数 说明
requestModel 请求模型
success 成功回调
failure 失败回调,返回失败原因

ThingSmartMessagePushSwitchRequestModel 数据模型

字段 说明
type 消息类型:
  • ThingSmartMessagePushSwitchTypeDeviceAlarm:告警消息
  • ThingSmartMessagePushSwitchTypeFamily:家庭消息
  • ThingSmartMessagePushSwitchTypeNotice:通知消息
  • ThingSmartMessagePushSwitchTypeMarketing:营销消息
open 开关状态

示例代码

Objective-C

ThingSmartMessagePushSwitchRequestModel *requesModel = [[ThingSmartMessagePushSwitchRequestModel alloc] init];
requesModel.open = open;
requesModel.type = type;
[[ThingSmartMessagePushSetting new] setMessagePushSwitchStatusWithRequestModel:requesModel success:^{

} failure:^(NSError *error) {

}];

Swift

let requestModel = ThingSmartMessagePushSwitchRequestModel()
requestModel.open = true
requestModel.type = .family
ThingSmartMessagePushSetting().setMessagePushSwitchStatusWith(requestModel) {

} failure: { erro in

}

查询设备告警推送开关状态

设备告警支持通过系统推送、电话和短信三种方式通知用户,可分别设置开关状态。其中,电话通知和短信通知需要另外开通增值服务,可咨询对接商务人员。同时,接入 高级功能 UI 业务包,提供用户购买服务的页面。

接口说明

- (void)getDeviceAlarmSwitchStatusWithPushChannel:(ThingSmartDeviceAlarmPushChannel)pushChannel
success:(ThingSuccessBOOL _Nullable)success
failure:(ThingFailureError _Nullable)failure;

参数说明

参数 说明
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelSystem:系统推送
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信
  • ThingSmartDeviceAlarmPushChannelAll:所有通道
success 成功回调,返回推送开关状态
failure 失败回调,返回失败原因

示例代码

Objective-C

[[ThingSmartMessagePushSetting new] getDeviceAlarmSwitchStatusWithPushChannel:ThingSmartDeviceAlarmPushChannelSystem success:^(BOOL result) {

} failure:^(NSError *error) {

}];

Swift

ThingSmartMessagePushSetting().getDeviceAlarmSwitchStatus(with: .system) { result in

} failure: { error in

}

设置设备告警推送开关

接口说明

- (void)setDeviceAlarmSwitchStatusWithRequestModel:(ThingSmartDeviceAlarmSwitchRequestModel *_Nonnull)requestModel
success:(__nullable ThingSuccessHandler)success
failure:(__nullable ThingFailureError)failure;

参数说明

参数 说明
requestModel 请求模型
success 成功回调
failure 失败回调,返回失败原因

ThingSmartDeviceAlarmSwitchRequestModel 数据模型

字段 说明
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelSystem:系统推送
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信
  • ThingSmartDeviceAlarmPushChannelAll:所有通道
open 开关状态

示例代码

Objective-C

ThingSmartDeviceAlarmSwitchRequestModel *requestModel = [[ThingSmartDeviceAlarmSwitchRequestModel alloc] init];
requestModel.open = YES;
requestModel.pushChannel = ThingSmartDeviceAlarmPushChannelSystem;
[[ThingSmartMessagePushSetting new] setDeviceAlarmSwitchStatusWithRequestModel:requestModel success:^{

} failure:^(NSError *error) {

}];

Swift

let requestModel = ThingSmartDeviceAlarmSwitchRequestModel()
requestModel.open = true
requestModel.pushChannel = .system
ThingSmartMessagePushSetting().setDeviceAlarmSwitchStatusWith(requestModel) {

} failure: { erro in

}

查询设备告警节流时间

接口说明

- (void)getDeviceAlarmThrottleTimeWithPushChannel:(ThingSmartDeviceAlarmPushChannel)pushChannel
                                      success:(ThingSuccessInt _Nullable )success
                                      failure:(ThingFailureError _Nullable )failure;

参数说明

参数 说明
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelSystem:系统推送
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信
  • ThingSmartDeviceAlarmPushChannelAll:所有通道
success 成功回调,返回节流时间,单位分钟
failure 失败回调,返回失败原因

示例代码

Objective-C

[[ThingSmartMessagePushSetting new] getDeviceAlarmThrottleTimeWithPushChannel:ThingSmartDeviceAlarmPushChannelSystem success:^(int result) {

} failure:^(NSError *error) {

}];

Swift

ThingSmartMessagePushSetting().getDeviceAlarmThrottleTime(with: .system) { time in

} failure: { error in

}

设置设备告警节流时间

接口说明

- (void)setDeviceAlarmThrottleTimeWithRequestModel:(ThingSmartDeviceAlarmThrottleTimeRequestModel *_Nonnull)requestModel
                           success:(__nullable ThingSuccessBOOL)success
                           failure:(__nullable ThingFailureError)failure;

参数说明

参数 说明
requestModel 请求模型
success 成功回调
failure 失败回调,返回失败原因

ThingSmartDeviceAlarmThrottleTimeRequestModel 数据模型

字段 说明
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelSystem:系统推送
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信
  • ThingSmartDeviceAlarmPushChannelAll:所有通道
minute 节流时间,单位分钟

示例代码

Objective-C

ThingSmartDeviceAlarmThrottleTimeRequestModel *requestModel = [[ThingSmartDeviceAlarmThrottleTimeRequestModel alloc] init];
requestModel.minute = 10;
requestModel.pushChannel = ThingSmartDeviceAlarmPushChannelSystem;
[[ThingSmartMessagePushSetting new] setDeviceAlarmThrottleTimeWithRequestModel:requestModel success:^(BOOL result) {

} failure:^(NSError *error) {

}];

Swift

let requestModel = ThingSmartDeviceAlarmThrottleTimeRequestModel()
requestModel.minute = 10
requestModel.pushChannel = .system
        ThingSmartMessagePushSetting().setDeviceAlarmThrottleTimeWith(requestModel) { result in

} failure: { error in

}

查询设备告警配置详情

接口说明

- (void)getDeviceAlarmServiceInfoWithRequestModel:(ThingSmartDeviceAlarmServiceRequestModel *_Nonnull)requestModel
                                      success:(void(^_Nullable)(NSArray <ThingSmartDeviceAlarmServiceInfoEntity *>* _Nullable result))success
                                      failure:(ThingFailureError _Nullable )failure;

参数说明

参数 说明
requestModel 请求模型
success 成功回调,返回设备告警配置列表
failure 失败回调,返回失败原因

ThingSmartDeviceAlarmServiceRequestModel 数据模型

字段 说明
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelSystem:系统推送
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信
  • ThingSmartDeviceAlarmPushChannelAll:所有通道
homeId 家庭 ID
deviceId 设备 ID

ThingSmartDeviceAlarmServiceInfoEntity 数据模型

字段 说明
configId 配置 ID
configName 配置名称
selected 是否选中该配置

示例代码

Objective-C

ThingSmartDeviceAlarmServiceRequestModel *requestModel = [[ThingSmartDeviceAlarmServiceRequestModel alloc] init];
requestModel.deviceId = deviceId;
requestModel.pushChannel = pushChannel;
requestModel.homeId = familyId;

[[ThingSmartMessagePushSetting new] getDeviceAlarmServiceInfoWithRequestModel:requestModel success:^(NSArray<ThingSmartDeviceAlarmServiceInfoEntity *> * _Nullable result) {

} failure:^(NSError *error) {

}];

Swift

let requestModel = ThingSmartDeviceAlarmServiceRequestModel()
requestModel.homeId = 123
requestModel.deviceId = "xx"
requestModel.pushChannel = .system
ThingSmartMessagePushSetting().getDeviceAlarmServiceInfo(requestModel) { list in

} failure: { error in

}

设置设备告警配置详情

接口说明

- (void)setDeviceAlarmServiceInfoWithRequestModel:(ThingSmartDeviceAlarmServiceUpdateRequestModel *_Nonnull)requestModel
                                      success:(ThingSuccessBOOL _Nullable )success
                                      failure:(ThingFailureError _Nullable )failure;

参数说明

参数 说明
requestModel 请求模型
success 成功回调
failure 失败回调,返回失败原因

ThingSmartDeviceAlarmServiceUpdateRequestModel 数据模型

字段 说明
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelSystem:系统推送
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信
  • ThingSmartDeviceAlarmPushChannelAll:所有通道
homeId 家庭 ID
deviceId 设备 ID
configIds 配置 ID 列表

示例代码

Objective-C

ThingSmartDeviceAlarmServiceUpdateRequestModel *requestModel = [[ThingSmartDeviceAlarmServiceUpdateRequestModel alloc] init];
requestModel.deviceId = deviceId;
requestModel.pushChannel = pushChannel;
requestModel.configIds = configIds;
requestModel.homeId = familyId;
[[ThingSmartMessagePushSetting new] setDeviceAlarmServiceInfoWithRequestModel:requestModel success:^(BOOL result) {

} failure:^(NSError *error) {

}];

Swift

let requestModel = ThingSmartDeviceAlarmServiceUpdateRequestModel()
requestModel.homeId = 123
requestModel.deviceId = "xx"
requestModel.pushChannel = .system
requestModel.configIds = ["xx","xx"]
ThingSmartMessagePushSetting().setDeviceAlarmServiceInfoWith(requestModel) { result in

} failure: { erro in

}

查询设备告警服务购买信息

仅支持查询电话和短信通知的购买情况。

接口说明

- (void)getDeviceAlarmPurchaseInfoWithPushChannel:(ThingSmartDeviceAlarmPushChannel)pushChannel
                                                 success:(void(^_Nullable)(ThingSmartDeviceAlarmPurchaseEntity * _Nullable result))success
                                             failure:(ThingFailureError _Nullable )failure;

参数说明

参数 说明
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信
success 成功回调,返回购买信息
failure 失败回调,返回失败原因

ThingSmartDeviceAlarmPurchaseEntity 数据模型

字段 说明
expireDate 过期时间
packageStatus 购买状态:
  • ThingSmartDeviceAlarmServicePurchaseStatusNotBuy:未购买
  • ThingSmartDeviceAlarmServicePurchaseStatusBuy:已购买
  • ThingSmartDeviceAlarmServicePurchaseStatusOverDue:已过期
  • ThingSmartDeviceAlarmServicePurchaseStatusUsageExceeded:服务次数耗尽
remainingTimes 剩余次数
packageDesc 描述

示例代码

Objective-C

[[ThingSmartMessagePushSetting new] getDeviceAlarmPurchaseInfoWithPushChannel:channel success:^(ThingSmartDeviceAlarmPurchaseEntity * _Nullable result) {

} failure:^(NSError *error) {

}];

Swift

ThingSmartMessagePushSetting().getDeviceAlarmPurchaseInfo(with: .phone) { result in

} failure: { error in

}

查询家庭下告警设备列表

仅支持查询电话和短信推送通道下的告警设备列表。

接口说明

- (void)getDeviceAlarmListWithRequestModel:(ThingSmartDeviceAlarmListRequestModel *_Nonnull)requestModel
                             success:(void(^_Nullable)(ThingSmartDeviceAlarmListEntity * _Nullable result))success
                             failure:(ThingFailureError _Nullable )failure;

参数说明

参数 说明
requestModel 请求模型
success 成功回调,返回设备列表
failure 失败回调,返回失败原因

ThingSmartDeviceAlarmListRequestModel 数据模型

字段 说明
pageNumber 分页编号
pageSize 分页大小
homeId 家庭 ID
pushChannel 推送通道:
  • ThingSmartDeviceAlarmPushChannelPhone:电话
  • ThingSmartDeviceAlarmPushChannelSMS:短信

ThingSmartDeviceAlarmListEntity 数据模型

字段 说明
hasMore 是否还有更多数据
devices 设备列表

ThingSmartDeviceAlarmItemEntity 数据模型

字段 说明
deviceId 设备 ID
name 设备名称
iconUrl 设备图标
selectedNum 设备已选择的告警配置数量
totalNum 总告警配置数量

示例代码

Objective-C

ThingSmartDeviceAlarmListRequestModel *requestModel = [[ThingSmartDeviceAlarmListRequestModel alloc] init];
requestModel.pushChannel = ThingSmartDeviceAlarmPushChannelPhone;
requestModel.pageNumber = 1;
requestModel.pageSize = 15;
requestModel.homeId = familyId;
[[ThingSmartMessagePushSetting new] getDeviceAlarmListWithRequestModel:requestModel success:^(ThingSmartDeviceAlarmListEntity * _Nullable result) {

} failure:^(NSError *error) {

}];

Swift

let requestModel = ThingSmartDeviceAlarmListRequestModel()
requestModel.homeId = 123
requestModel.pageSize = 15
requestModel.pageNumber = 1
 requestModel.pushChannel = .phone
ThingSmartMessagePushSetting().getDeviceAlarmList(with: requestModel) { list in

} failure: { error in

}