Skip to content

Commit abff9cb

Browse files
author
hannojg
committed
Add upload API to iOS
1 parent 2feb5c9 commit abff9cb

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

ios/MatrixSdk.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ + (BOOL)requiresMainQueueSetup
8080

8181
RCT_EXTERN_METHOD(setUserDisplayName:(NSString *)displayName resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
8282

83+
RCT_EXTERN_METHOD(uploadContent:(NSString *)fileUri fileName:(NSString *)fileName mimeType:(NSString *)mimeType uploadId:(NSString *)uploadId resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
84+
8385
RCT_EXTERN_METHOD(sendTyping:(NSString *)roomId isTyping:(nonnull BOOL *)isTyping timeout:(nonnull NSNumber *)timeout resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
8486

8587
RCT_EXTERN_METHOD(updatePresence:(nonnull BOOL *)isOnline resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)

ios/RNMatrixSDK.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -893,6 +893,24 @@ class RNMatrixSDK: RCTEventEmitter {
893893
}
894894
}
895895

896+
@objc(uploadContent:fileName:mimeType:uploadId:resolver:rejecter:)
897+
func uploadContent(fileUri: String, fileName: String, mimeType: String, uploadId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
898+
if mxSession == nil {
899+
reject(E_MATRIX_ERROR, "client is not connected yet", nil)
900+
return
901+
}
902+
903+
let mediaLoader = MXMediaManager.prepareUploader(withMatrixSession: mxSession, initialRange: 0, andRange: 1.0)
904+
let nsdata = NSData(contentsOfFile: fileUri)
905+
mediaLoader?.uploadData(Data(referencing: nsdata!), filename: fileName, mimeType: mimeType, success: { (url) in
906+
resolve([
907+
uploadId: url
908+
])
909+
}, failure: { (error) in
910+
911+
})
912+
}
913+
896914
@objc(sendTyping:isTyping:timeout:resolver:rejecter:)
897915
func sendTyping(roomId: String, isTyping: Bool, timeout: NSNumber, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
898916
if mxSession == nil {

0 commit comments

Comments
 (0)