This topic describes the APIs related to message capabilities.
API description
- (void)fetchMessageListWithListRequestModel:(ThingSmartMessageListRequestModel *)listRequestModel
success:(void (^)(NSArray<ThingSmartMessageListModel *> *messageList))success
failure:(ThingFailureError)failure;
Parameters
| Parameter | Description |
|---|---|
| listRequestModel | The model to request the list of messages. |
| success | The success callback, returning an array of messages. |
| failure | The failure callback, returning an error message. |
Data model of ThingSmartMessageListRequestModel
| Field | Description |
|---|---|
| msgType | The message type:
|
| limit | The maximum number of results that can be requested. |
| offset | The total number of returned results. |
Example
Objective-C:
ThingSmartMessageListRequestModel *requestModel = [[ThingSmartMessageListRequestModel alloc] init];
requestModel.msgType = ThingMessageTypeAlarm;
requestModel.offset = 0;
requestModel.limit = 15;
ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message fetchMessageListWithListRequestModel:requestModel success:^(NSArray<ThingSmartMessageListModel *> * _Nonnull messageList) {
} failure:^(NSError *error) {
}];
Swift:
let requestModel = ThingSmartMessageListRequestModel()
requestModel.msgType = .alarm
requestModel.limit = 15
requestModel.offset = 0
let message = ThingSmartMessage()
message.fetchList(with: requestModel) { list in
} failure: { error in
}
API description
- (void)fetchMessageListWithRequestModel:(ThingSmartMessageListRequestModelV1 *)requestModel
success:(void (^)(NSArray<ThingSmartMessageListModel *> *messageList))success
failure:(ThingFailureError)failure;
Parameters
| Parameter | Description |
|---|---|
| requestModel | The model to request the list of messages. |
| success | The success callback, returning an array of messages. |
| failure | The failure callback, returning an error message. |
Data model of ThingSmartMessageListRequestModelV1
| Field | Description |
|---|---|
| limit | The maximum number of results that can be requested. |
| offset | The total number of returned results. |
| startTime | The start time of the messages to be requested. |
| endTime | The end time of the messages to be requested. |
Example
Objective-C:
ThingSmartMessageListRequestModelV1 *requestModel = [[ThingSmartMessageListRequestModelV1 alloc] init];
requestModel.offset = 0;
requestModel.limit = 15;
requestModel.startTime = 1779433380;
requestModel.endTime = 1779433428;
ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message fetchMessageListWithListRequestModel:requestModel success:^(NSArray<ThingSmartMessageListModel *> * _Nonnull messageList) {
} failure:^(NSError *error) {
}];
Swift:
let requestModel = ThingSmartMessageListRequestModelV1()
requestModel.limit = 15
requestModel.offset = 0
requestModel.startTime = 1779433380
requestModel.endTime = 1779433428
let message = ThingSmartMessage()
message.fetchList(with: requestModel) { list in
} failure: { error in
}
API description
- (void)fetchEncryptMessageDetailListWithListRequestModel:(ThingSmartMessageDetailListRequestModel *)detailListRequestModel
success:(void (^)(NSArray<ThingSmartMessageListModel *> *messageList))success
failure:(ThingFailureError)failure;
Parameters
| Parameter | Description |
|---|---|
| detailListRequestModel | The model to request the message details. |
| success | The success callback, returning an array of message details. |
| failure | The failure callback, returning an error message. |
Data model of ThingSmartMessageDetailListRequestModel
| Field | Description |
|---|---|
| msgType | The message type. Only the alert type ThingMessageTypeAlarm is supported. |
| limit | The maximum number of results that can be requested. |
| offset | The total number of returned results. |
| msgSrcId | The ID of the device that sends the alert. |
Example
Objective-C:
ThingSmartMessageDetailListRequestModel *listRequestModel = [[ThingSmartMessageDetailListRequestModel alloc] init];
listRequestModel.msgType = ThingMessageTypeAlarm;
listRequestModel.limit = 15;
listRequestModel.offset = 0;
listRequestModel.msgSrcId = @"xxx";
ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message fetchEncryptMessageDetailListWithListRequestModel:listRequestModel success:^(NSArray<ThingSmartMessageListModel *> * _Nonnull messageList) {
} failure:^(NSError *error) {
}];
Swift:
let requestModel = ThingSmartMessageDetailListRequestModel()
requestModel.msgType = .alarm
requestModel.limit = 15
requestModel.offset = 0
requestModel.msgSrcId = ""
let message = ThingSmartMessage()
message.fetchEncryptMessageDetailList(with: requestModel) { list in
} failure: { error in
}
API description
- (void)fetchMessageDecryptKeyWithEncryptRequestModel:(NSArray<ThingSmartMessageEncryptRequestModel *> *)encryptRequestListModel
success:(void (^)(NSArray<ThingSmartMessageDecryptModel *> *messageList))success
failure:(ThingFailureError)failure;
Parameters
| Parameter | Description |
|---|---|
| encryptRequestListModel | An array of models to request the message key. |
| success | The success callback, returning an array of message keys. |
| failure | The failure callback, returning an error message. |
Data model of ThingSmartMessageEncryptRequestModel
| Field | Description |
|---|---|
| businessNo | The message ID. |
| deviceId | The ID of the device that sends the alert. |
| homeId | The home ID. |
| time | The message timestamp. |
Data model of ThingSmartMessageDecryptModel
| Field | Description |
|---|---|
| businessNo | The message ID. |
| businessKey | The message key. |
Example
Objective-C:
ThingSmartMessageEncryptRequestModel *requestModel = [[ThingSmartMessageEncryptRequestModel alloc] init];
requestModel.businessNo = message.msgId;
requestModel.deviceId = message.msgSrcId;
requestModel.time = message.time;
requestModel.homeId = message.homeID;
ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message fetchMessageDecryptKeyWithEncryptRequestModel:@[requestModel] success:^(NSArray<ThingSmartMessageDecryptModel *> * _Nonnull decryptList) {
} failure:^(NSError *error) {
}];
Swift:
let requestModel = ThingSmartMessageEncryptRequestModel()
requestModel.businessNo = message.msgId
requestModel.deviceId = message.msgSrcId
requestModel.time = message.time
requestModel.homeId = message.homeID
let message = ThingSmartMessage()
message.fetchDecryptKey(withEncryptRequestModel: [requestModel]) { list in
} failure: { error in
}
API description
- (void)deleteMessageWithDeleteRequestModel:(ThingSmartMessageListDeleteRequestModel *)deleteRequestModel
success:(ThingSuccessBOOL)success
failure:(ThingFailureError)failure;
Parameters
| Parameter | Description |
|---|---|
| deleteRequestModel | The model to delete messages. |
| success | The success callback. |
| failure | The failure callback, returning an error message. |
Data model of ThingSmartMessageListDeleteRequestModel
| Field | Description |
|---|---|
| msgType | The message type:
|
| msgIds | The list of messages to delete. |
| msgSrcIds | The list of alert messages to delete. |
msgSrcIds.ids.msgIds.Do not set both msgSrcIds and ids at the same time. Otherwise, the messages from the details list cannot be deleted.
Example
Objective-C:
ThingSmartMessageListDeleteRequestModel *requestModel = [[ThingSmartMessageListDeleteRequestModel alloc] init];
requestModel.msgType = ThingMessageTypeAlarm;
requestModel.msgSrcIds = @[@"xx", @"xx"];
ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message deleteMessageWithDeleteRequestModel:requestModel success:^(BOOL result) {
} failure:^(NSError *error) {
}];
Swift:
let requestModel = ThingSmartMessageListDeleteRequestModel()
requestModel.msgType = .alarm
requestModel.msgSrcIds = ["xx", "xx"]
let message = ThingSmartMessage()
message.delete(with: requestModel) { result in
} failure: { error in
}
API description
- (void)getLatestMessageWithSuccess:(ThingSuccessDict)success failure:(ThingFailureError)failure
Parameters
| Parameter | Description |
|---|---|
| success | The success callback, returning a dictionary with the following keys:
|
| failure | The failure callback, returning an error message. |
The logic for checking for new messages varies by msgType in ThingSmartMessageListRequestModel.
When a new home message or notice arrives, getLatestMessageWithSuccess:failure: returns true. When you call getLatestMessageWithSuccess:failure: after querying the message list, the result will be set to false.
For alert messages, when you query the message list after readMessageWithReadRequestModel:success:failure:, hasNotRead in ThingSmartMessageListModel will be set to false.
Example
Objective-C:
// self.smartMessage = [[ThingSmartMessage alloc] init];
[self.smartMessage getLatestMessageWithSuccess:^(NSDictionary *result) {
NSLog(@"get latesMessage success:%@", result);
} failure:^(NSError *error) {
NSLog(@"get message max time failure:%@", error);
}];
Swift:
smartMessage?.getLatestMessageWithSuccess({ (result) in
print("get message max time success :\(result)")
}, failure: { (error) in
if let e = error {
print("get message max time failure: \(e)")
}
})
API description
- (void)readMessageWithReadRequestModel:(ThingSmartMessageListReadRequestModel *)readRequestModel
success:(ThingSuccessBOOL)success
failure:(ThingFailureError)failure;
Parameters
| Parameter | Description |
|---|---|
| readRequestModel | The model for marking messages as read. |
| success | The success callback. |
| failure | The failure callback, returning an error message. |
Data model of ThingSmartMessageListReadRequestModel
| Field | Description |
|---|---|
| msgType | The message type. Only the alert type ThingMessageTypeAlarm is supported. |
| msgIds | The list of message IDs to be marked as read. |
Example
Objective-C:
ThingSmartMessageListReadRequestModel *requestModel = [[ThingSmartMessageListReadRequestModel alloc] init];
requestModel.msgType = ThingMessageTypeAlarm;
requestModel.msgIds = @[@"xx", @"xx"];
ThingSmartMessage *message = [[ThingSmartMessage alloc] init];
[message readMessageWithReadRequestModel:requestModel success:^(BOOL result) {
} failure:^(NSError *error) {
}];
Swift:
let requestModel = ThingSmartMessageListReadRequestModel()
requestModel.msgType = .alarm
requestModel.msgIds = ["xx", "xx"]
let message = ThingSmartMessage()
message.read(with: requestModel) { result in
} failure: { error in
}
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback