浏览 SDKs · iOS
平台
SDKsiOS

发送不经 OSS 的消息

使用 iOS SDK 发送已包含远端资源 URL 的消息。

复制

发送不经 OSS 的消息接口用于业务层已经自行将图片、语音、视频或文件等媒体资源上传至自有服务器或第三方对象存储,并已通过 URL 型创建接口生成消息对象的场景。使用该方法发送消息时,SDK 不会再次上传文件,而是直接将包含 URL 的消息投递至目标会话。

[[OIMManager manager] sendMessageNotOss:urlMessage
                                 recvID:receiverUserID
                                groupID:nil
                           isOnlineOnly:NO
                        offlinePushInfo:nil
                             onProgress:nil
                              onSuccess:^(OIMMessageInfo *sent) {
    // 发送成功,按 clientMsgID 更新本地状态
    if (sent != nil) {
        [messageStore upsert:sent];
    }
}
                              onFailure:^(NSInteger code, NSString * _Nullable msg) {
    // 处理发送失败状态
}];

参数说明

  • urlMessage:已包含远端 URL 的待发送消息对象(OIMMessageInfo),由 URL 型媒体消息创建接口生成。
  • recvID:单聊接收方用户 ID。发送单聊消息时必填;发送群聊消息时传 nil。
  • groupID:群聊目标群组 ID。发送群聊消息时必填;发送单聊消息时传 nil。recvID 与 groupID 互斥,两者不能同时赋值。
  • isOnlineOnly:是否仅在线投递。传 YES 时,消息不落入离线存储且不触发离线推送,仅当前在线用户可见;通常传 NO。
  • offlinePushInfo:离线推送自定义配置(OIMOfflinePushInfo),包含标题、描述与透传数据;使用默认配置时传 nil。
  • onProgress:上传进度回调。由于资源已由业务自行上传,通常传入 nil。
  • onSuccess:发送成功回调,返回发送完成的消息对象 sent。
  • onFailure:发送失败回调,返回错误码 code 和错误信息 msg。

返回结果

  • 成功回调返回服务端确认后的 OIMMessageInfo 对象,客户端状态合并标识为 clientMsgID(必要时同时限定 conversationID)。
  • 传入的消息对象中,媒体 URL、文件大小、文件类型、尺寸及播放时长等元数据必须来自真实的上传结果。接收端的消息监听与处理见接收消息。