juggleim-rnsdk 0.1.5 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  2. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  3. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  4. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  6. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  7. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  8. package/android/.gradle/8.9/gc.properties +0 -0
  9. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  10. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  11. package/android/.gradle/vcs-1/gc.properties +0 -0
  12. package/android/.settings/org.eclipse.buildship.core.prefs +12 -1
  13. package/android/build/.transforms/42b8ab7e96b9440b0e91d2ecba5f579c/transformed/classes/classes_dex/classes.dex +0 -0
  14. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$10.dex +0 -0
  15. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$11.dex +0 -0
  16. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$12.dex +0 -0
  17. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$13.dex +0 -0
  18. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$14.dex +0 -0
  19. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$15.dex +0 -0
  20. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$16.dex +0 -0
  21. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$17.dex +0 -0
  22. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$18.dex +0 -0
  23. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$19.dex +0 -0
  24. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$20.dex +0 -0
  25. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$21.dex +0 -0
  26. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$22.dex +0 -0
  27. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$6.dex +0 -0
  28. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$7.dex +0 -0
  29. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$8.dex +0 -0
  30. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager$9.dex +0 -0
  31. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMManager.dex +0 -0
  32. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/JuggleIMPackage.dex +0 -0
  33. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/JuggleIMCallModule$1.dex +0 -0
  34. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/JuggleIMCallModule$2.dex +0 -0
  35. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/JuggleIMCallModule$3.dex +0 -0
  36. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/JuggleIMCallModule.dex +0 -0
  37. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/view/RCTZegoSurfaceViewManager.dex +0 -0
  38. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/juggleim/call/view/ZegoSurfaceView.dex +0 -0
  39. package/android/build/.transforms/a3b636e0768beb7635f48b7f77613c33/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  40. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  41. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -1
  42. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$10.class +0 -0
  43. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$11.class +0 -0
  44. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$12.class +0 -0
  45. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$13.class +0 -0
  46. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$14.class +0 -0
  47. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$15.class +0 -0
  48. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$16.class +0 -0
  49. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$17.class +0 -0
  50. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$18.class +0 -0
  51. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$19.class +0 -0
  52. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$20.class +0 -0
  53. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$21.class +0 -0
  54. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$22.class +0 -0
  55. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$6.class +0 -0
  56. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$7.class +0 -0
  57. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$8.class +0 -0
  58. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager$9.class +0 -0
  59. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMManager.class +0 -0
  60. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/JuggleIMPackage.class +0 -0
  61. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule$1.class +0 -0
  62. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule$2.class +0 -0
  63. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule$3.class +0 -0
  64. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/JuggleIMCallModule.class +0 -0
  65. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/view/RCTZegoSurfaceViewManager.class +0 -0
  66. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/juggleim/call/view/ZegoSurfaceView.class +0 -0
  67. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$10.class +0 -0
  68. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$11.class +0 -0
  69. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$12.class +0 -0
  70. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$13.class +0 -0
  71. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$14.class +0 -0
  72. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$15.class +0 -0
  73. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$16.class +0 -0
  74. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$17.class +0 -0
  75. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$18.class +0 -0
  76. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$19.class +0 -0
  77. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$20.class +0 -0
  78. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$21.class +0 -0
  79. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$22.class +0 -0
  80. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$6.class +0 -0
  81. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$7.class +0 -0
  82. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$8.class +0 -0
  83. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager$9.class +0 -0
  84. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMManager.class +0 -0
  85. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/JuggleIMPackage.class +0 -0
  86. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule$1.class +0 -0
  87. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule$2.class +0 -0
  88. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule$3.class +0 -0
  89. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/JuggleIMCallModule.class +0 -0
  90. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/view/RCTZegoSurfaceViewManager.class +0 -0
  91. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/juggleim/call/view/ZegoSurfaceView.class +0 -0
  92. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  93. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$1.class.uniqueId24 +0 -0
  94. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$10.class.uniqueId0 +0 -0
  95. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$11.class.uniqueId14 +0 -0
  96. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$12.class.uniqueId22 +0 -0
  97. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$13.class.uniqueId7 +0 -0
  98. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$14.class.uniqueId15 +0 -0
  99. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$15.class.uniqueId6 +0 -0
  100. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$16.class.uniqueId11 +0 -0
  101. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$17.class.uniqueId23 +0 -0
  102. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$18.class.uniqueId8 +0 -0
  103. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$19.class.uniqueId20 +0 -0
  104. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$2.class.uniqueId3 +0 -0
  105. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$20.class.uniqueId5 +0 -0
  106. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$21.class.uniqueId13 +0 -0
  107. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$22.class.uniqueId18 +0 -0
  108. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$23.class.uniqueId10 +0 -0
  109. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$3.class.uniqueId17 +0 -0
  110. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$4.class.uniqueId21 +0 -0
  111. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$5.class.uniqueId9 +0 -0
  112. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$6.class.uniqueId12 +0 -0
  113. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$7.class.uniqueId4 +0 -0
  114. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$8.class.uniqueId16 +0 -0
  115. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager$9.class.uniqueId19 +0 -0
  116. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMManager.class.uniqueId1 +0 -0
  117. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/JuggleIMPackage.class.uniqueId2 +0 -0
  118. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  119. package/android/build.gradle +2 -0
  120. package/android/src/main/java/com/juggleim/JuggleIMManager.java +24 -3
  121. package/android/src/main/java/com/juggleim/JuggleIMPackage.java +4 -1
  122. package/android/src/main/java/com/juggleim/call/JuggleIMCallModule.java +507 -0
  123. package/android/src/main/java/com/juggleim/call/view/RCTZegoSurfaceViewManager.java +32 -0
  124. package/android/src/main/java/com/juggleim/call/view/ZegoSurfaceView.java +43 -0
  125. package/ios/JModelFactory.m +12 -3
  126. package/ios/JuggleIMManager.m +8 -9
  127. package/ios/call/JuggleIMCallModule.h +10 -0
  128. package/ios/call/JuggleIMCallModule.m +520 -0
  129. package/ios/call/README.md +51 -0
  130. package/ios/call/view/ZegoSurfaceView.h +7 -0
  131. package/ios/call/view/ZegoSurfaceView.m +45 -0
  132. package/ios/call/view/ZegoSurfaceViewManager.h +5 -0
  133. package/ios/call/view/ZegoSurfaceViewManager.m +12 -0
  134. package/juggleim-rnsdk.podspec +3 -1
  135. package/package.json +1 -1
  136. package/src/call/CallConst.ts +43 -0
  137. package/src/call/CallInfo.ts +13 -0
  138. package/src/call/CallMember.ts +12 -0
  139. package/src/call/CallSession.ts +186 -0
  140. package/src/call/JuggleIMCall.ts +79 -0
  141. package/src/call/ZegoSurfaceView.tsx +24 -0
  142. package/src/call/index.ts +8 -0
  143. package/src/index.d.ts +422 -864
  144. package/src/index.js +1 -0
  145. package/src/types.d.ts +453 -0
  146. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/GenericCustomMessage.class.uniqueId0 +0 -0
@@ -0,0 +1,520 @@
1
+ #import "JuggleIMCallModule.h"
2
+ #import "../JModelFactory.h"
3
+ #import "view/ZegoSurfaceView.h"
4
+ #import <JuggleIM/JuggleIM.h>
5
+ #import <React/RCTEventEmitter.h>
6
+
7
+ @interface JuggleIMCallModule () <JCallReceiveDelegate,
8
+ JConversationCallDelegate>
9
+
10
+ @property(nonatomic, strong)
11
+ NSMutableDictionary<NSString *, id<JCallReceiveDelegate>> *receiveListeners;
12
+ @property(nonatomic, strong)
13
+ NSMutableDictionary<NSString *, id<JConversationCallDelegate>>
14
+ *conversationCallListeners;
15
+ @property(nonatomic, strong) NSMutableDictionary<
16
+ NSString *, NSMutableDictionary<NSString *, id<JCallSessionDelegate>> *>
17
+ *sessionListeners;
18
+
19
+ @end
20
+
21
+ #pragma mark - JCallSessionDelegateWrapper (declaration)
22
+
23
+ @interface JCallSessionDelegateWrapper : NSObject <JCallSessionDelegate>
24
+
25
+ @property(nonatomic, copy) NSString *callId;
26
+ @property(nonatomic, copy) NSString *key;
27
+ @property(nonatomic, weak) JuggleIMCallModule *module;
28
+
29
+ - (instancetype)initWithCallId:(NSString *)callId
30
+ key:(NSString *)key
31
+ module:(JuggleIMCallModule *)module;
32
+
33
+ @end
34
+
35
+ @implementation JuggleIMCallModule
36
+
37
+ RCT_EXPORT_MODULE(JuggleIMCallModule);
38
+
39
+ - (instancetype)init {
40
+ if (self = [super init]) {
41
+ _receiveListeners = [NSMutableDictionary dictionary];
42
+ _conversationCallListeners = [NSMutableDictionary dictionary];
43
+ _sessionListeners = [NSMutableDictionary dictionary];
44
+ }
45
+ return self;
46
+ }
47
+
48
+ + (BOOL)requiresMainQueueSetup {
49
+ return YES;
50
+ }
51
+
52
+ - (NSArray<NSString *> *)supportedEvents {
53
+ return @[
54
+ @"CallManager_onCallReceive", @"CallManager_onCallInfoUpdate",
55
+ @"CallSession_onCallConnect", @"CallSession_onCallFinish",
56
+ @"CallSession_onErrorOccur", @"CallSession_onUsersInvite",
57
+ @"CallSession_onUsersConnect", @"CallSession_onUsersLeave",
58
+ @"CallSession_onUserCameraEnable", @"CallSession_onUserMicrophoneEnable",
59
+ @"CallSession_onSoundLevelUpdate", @"CallSession_onVideoFirstFrameRender"
60
+ ];
61
+ }
62
+
63
+ - (id<JCallProtocol>)getCallManager {
64
+ return JIM.shared.callManager;
65
+ }
66
+
67
+ #pragma mark - Engine Initialization
68
+
69
+ RCT_EXPORT_METHOD(initZegoEngine : (int)appId) {
70
+ // TODO: Verify iOS native method signature - may need appSign parameter
71
+ // Android: initZegoEngine(appId, context)
72
+ // iOS: initZegoEngineWith:appId appSign:appSign
73
+ // Need to check if iOS requires appSign or if it's optional
74
+ [[self getCallManager] initZegoEngineWith:appId appSign:@""];
75
+ }
76
+
77
+ RCT_EXPORT_METHOD(initLiveKitEngine) {
78
+ [[self getCallManager] initLiveKitEngine];
79
+ }
80
+
81
+ RCT_EXPORT_METHOD(initAgoraEngine : (NSString *)appId) {
82
+ [[self getCallManager] initAgoraEngineWith:appId];
83
+ }
84
+
85
+ #pragma mark - Call Management
86
+
87
+ RCT_EXPORT_METHOD(startSingleCall : (NSString *)userId mediaType : (
88
+ int)mediaType extra : (NSString *)extra resolver : (RCTPromiseResolveBlock)
89
+ resolve rejecter : (RCTPromiseRejectBlock)reject) {
90
+ @try {
91
+ id<JCallSession> session =
92
+ [[self getCallManager] startSingleCall:userId
93
+ mediaType:(JCallMediaType)mediaType
94
+ extra:extra
95
+ delegate:nil];
96
+ NSDictionary *sessionDic = [JModelFactory callSessionToDic:session];
97
+ resolve(sessionDic);
98
+ } @catch (NSException *exception) {
99
+ reject(@"START_CALL_ERROR", exception.reason, nil);
100
+ }
101
+ }
102
+
103
+ RCT_EXPORT_METHOD(
104
+ startMultiCall : (NSArray<NSString *> *)userIdList mediaType : (int)
105
+ mediaType extra : (NSString *)extra conversationMap : (NSDictionary *)
106
+ conversationMap resolver : (RCTPromiseResolveBlock)
107
+ resolve rejecter : (RCTPromiseRejectBlock)reject) {
108
+ @try {
109
+ JConversation *conversation = nil;
110
+ if (conversationMap) {
111
+ conversation = [JModelFactory conversationFromDic:conversationMap];
112
+ }
113
+
114
+ id<JCallSession> session =
115
+ [[self getCallManager] startMultiCall:userIdList
116
+ mediaType:(JCallMediaType)mediaType
117
+ conversation:conversation
118
+ extra:extra
119
+ delegate:nil];
120
+ NSDictionary *sessionDic = [JModelFactory callSessionToDic:session];
121
+ resolve(sessionDic);
122
+ } @catch (NSException *exception) {
123
+ reject(@"START_MULTI_CALL_ERROR", exception.reason, nil);
124
+ }
125
+ }
126
+
127
+ RCT_EXPORT_METHOD(joinCall : (NSString *)callId resolver : (
128
+ RCTPromiseResolveBlock)resolve rejecter : (RCTPromiseRejectBlock)reject) {
129
+ @try {
130
+ id<JCallSession> session = [[self getCallManager] joinCall:callId
131
+ delegate:nil];
132
+ NSDictionary *sessionDic = [JModelFactory callSessionToDic:session];
133
+ resolve(sessionDic);
134
+ } @catch (NSException *exception) {
135
+ reject(@"JOIN_CALL_ERROR", exception.reason, nil);
136
+ }
137
+ }
138
+
139
+ RCT_EXPORT_METHOD(getCallSession : (NSString *)callId resolver : (
140
+ RCTPromiseResolveBlock)resolve rejecter : (RCTPromiseRejectBlock)reject) {
141
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
142
+ if (session) {
143
+ NSDictionary *sessionDic = [JModelFactory callSessionToDic:session];
144
+ resolve(sessionDic);
145
+ } else {
146
+ resolve([NSNull null]);
147
+ }
148
+ }
149
+
150
+ #pragma mark - Listeners
151
+
152
+ RCT_EXPORT_METHOD(addReceiveListener : (NSString *)key) {
153
+ __weak typeof(self) weakSelf = self;
154
+
155
+ // Create a delegate wrapper that forwards to this module
156
+ id<JCallReceiveDelegate> listener =
157
+ (id<JCallReceiveDelegate>)^(id<JCallSession> callSession) {
158
+ [weakSelf handleCallReceive:callSession forKey:key];
159
+ };
160
+
161
+ self.receiveListeners[key] = listener;
162
+ [[self getCallManager] addReceiveDelegate:self];
163
+ }
164
+
165
+ RCT_EXPORT_METHOD(removeReceiveListener : (NSString *)key) {
166
+ [self.receiveListeners removeObjectForKey:key];
167
+ if (self.receiveListeners.count == 0) {
168
+ // TODO: iOS SDK may not have removeReceiveDelegate method
169
+ // Need to verify and potentially keep delegate registered
170
+ }
171
+ }
172
+
173
+ RCT_EXPORT_METHOD(addConversationCallListener : (NSString *)key) {
174
+ __weak typeof(self) weakSelf = self;
175
+
176
+ id<JConversationCallDelegate> listener = (id<JConversationCallDelegate>)^(
177
+ JCallInfo *callInfo, JConversation *conversation, BOOL isFinished) {
178
+ [weakSelf handleCallInfoUpdate:callInfo
179
+ conversation:conversation
180
+ isFinished:isFinished
181
+ forKey:key];
182
+ };
183
+
184
+ self.conversationCallListeners[key] = listener;
185
+ [[self getCallManager] addConversationCallDelegate:self];
186
+ }
187
+
188
+ RCT_EXPORT_METHOD(removeConversationCallListener : (NSString *)key) {
189
+ [self.conversationCallListeners removeObjectForKey:key];
190
+ if (self.conversationCallListeners.count == 0) {
191
+ // TODO: iOS SDK may not have removeConversationCallDelegate method
192
+ }
193
+ }
194
+
195
+ #pragma mark - Session Control Methods
196
+
197
+ RCT_EXPORT_METHOD(accept : (NSString *)callId) {
198
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
199
+ if (session) {
200
+ [session accept];
201
+ }
202
+ }
203
+
204
+ RCT_EXPORT_METHOD(hangup : (NSString *)callId) {
205
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
206
+ if (session) {
207
+ [session hangup];
208
+ }
209
+ }
210
+
211
+ RCT_EXPORT_METHOD(enableCamera : (NSString *)callId enable : (BOOL)enable) {
212
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
213
+ if (session) {
214
+ [session enableCamera:enable];
215
+ }
216
+ }
217
+
218
+ RCT_EXPORT_METHOD(muteMicrophone : (NSString *)callId mute : (BOOL)mute) {
219
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
220
+ if (session) {
221
+ [session muteMicrophone:mute];
222
+ }
223
+ }
224
+
225
+ RCT_EXPORT_METHOD(muteSpeaker : (NSString *)callId mute : (BOOL)mute) {
226
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
227
+ if (session) {
228
+ [session muteSpeaker:mute];
229
+ }
230
+ }
231
+
232
+ RCT_EXPORT_METHOD(setSpeakerEnable : (NSString *)callId enable : (BOOL)enable) {
233
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
234
+ if (session) {
235
+ [session setSpeakerEnable:enable];
236
+ }
237
+ }
238
+
239
+ RCT_EXPORT_METHOD(useFrontCamera : (NSString *)callId enable : (BOOL)enable) {
240
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
241
+ if (session) {
242
+ [session useFrontCamera:enable];
243
+ }
244
+ }
245
+
246
+ RCT_EXPORT_METHOD(inviteUsers : (NSString *)
247
+ callId userIdList : (NSArray<NSString *> *)userIdList) {
248
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
249
+ if (session) {
250
+ [session inviteUsers:userIdList];
251
+ }
252
+ }
253
+
254
+ RCT_EXPORT_METHOD(enableAEC : (NSString *)callId enable : (BOOL)enable) {
255
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
256
+ if (session) {
257
+ [session enableAEC:enable];
258
+ }
259
+ }
260
+
261
+ RCT_EXPORT_METHOD(setVideoDenoiseParams : (NSString *)
262
+ callId params : (NSDictionary *)params) {
263
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
264
+ if (session) {
265
+ // TODO: Convert params dictionary to JCallVideoDenoiseParams
266
+ // Need to check JCallVideoDenoiseParams structure
267
+ JCallVideoDenoiseParams *denoiseParams =
268
+ [[JCallVideoDenoiseParams alloc] init];
269
+ [session setVideoDenoiseParams:denoiseParams];
270
+ }
271
+ }
272
+
273
+ RCT_EXPORT_METHOD(setVideoView : (NSString *)callId userId : (NSString *)
274
+ userId viewTag : (nonnull NSNumber *)viewTag resolver : (
275
+ RCTPromiseResolveBlock)
276
+ resolve rejecter : (RCTPromiseRejectBlock)reject) {
277
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
278
+ if (!session) {
279
+ reject(@"NoSession", @"Call session not found", nil);
280
+ return;
281
+ }
282
+
283
+ NSNumber *tag = viewTag;
284
+ [self.bridge.uiManager
285
+ addUIBlock:^(RCTUIManager *uiManager,
286
+ NSDictionary<NSNumber *, UIView *> *viewRegistry) {
287
+ UIView *view = viewRegistry[tag];
288
+ UIView *targetView = view;
289
+ if ([view isKindOfClass:[ZegoSurfaceView class]]) {
290
+ ZegoSurfaceView *zView = (ZegoSurfaceView *)view;
291
+ if (zView.videoView) {
292
+ targetView = zView.videoView;
293
+ }
294
+ }
295
+ NSLog(@"[JuggleIMCallModule] setVideoView callId=%@ viewTag=%@ view=%@ "
296
+ @"targetView=%@",
297
+ callId, tag, view, targetView);
298
+ if (targetView) {
299
+ [session setVideoView:targetView forUserId:userId];
300
+ resolve(nil);
301
+ } else {
302
+ NSString *msg = [NSString
303
+ stringWithFormat:@"setVideoView View not found for tag %@", tag];
304
+ reject(@"ViewNotFound", msg, nil);
305
+ }
306
+ }];
307
+ }
308
+
309
+ RCT_EXPORT_METHOD(startPreview : (NSString *)callId viewTag : (
310
+ nonnull NSNumber *)viewTag resolver : (RCTPromiseResolveBlock)
311
+ resolve rejecter : (RCTPromiseRejectBlock)reject) {
312
+ dispatch_async(dispatch_get_main_queue(), ^{
313
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
314
+ if (!session)
315
+ return;
316
+
317
+ UIView *view = [self.bridge.uiManager viewForReactTag:viewTag];
318
+ UIView *targetView = view;
319
+ if ([view isKindOfClass:[ZegoSurfaceView class]]) {
320
+ ZegoSurfaceView *zView = (ZegoSurfaceView *)view;
321
+ if (zView.videoView) {
322
+ targetView = zView.videoView;
323
+ }
324
+ }
325
+ if (targetView) {
326
+ [session startPreview:targetView];
327
+ resolve(nil);
328
+ } else {
329
+ reject(@"View not found", @"View not found", nil);
330
+ }
331
+ });
332
+ }
333
+
334
+ #pragma mark - Session Listeners
335
+
336
+ RCT_EXPORT_METHOD(addSessionListener : (NSString *)callId key : (NSString *)
337
+ key) {
338
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
339
+ if (!session) {
340
+ NSLog(@"[JuggleIMCallModule] addSessionListener: session is null for "
341
+ @"callId=%@",
342
+ callId);
343
+ return;
344
+ }
345
+
346
+ // Create delegate wrapper
347
+ JCallSessionDelegateWrapper *listener =
348
+ [[JCallSessionDelegateWrapper alloc] initWithCallId:callId
349
+ key:key
350
+ module:self];
351
+
352
+ // Store listener in nested dictionary structure
353
+ if (!self.sessionListeners[callId]) {
354
+ self.sessionListeners[callId] = [NSMutableDictionary dictionary];
355
+ }
356
+ self.sessionListeners[callId][key] = listener;
357
+ [session addDelegate:listener];
358
+ }
359
+
360
+ RCT_EXPORT_METHOD(removeSessionListener : (NSString *)callId key : (NSString *)
361
+ key) {
362
+ id<JCallSession> session = [[self getCallManager] getCallSession:callId];
363
+ if (session && self.sessionListeners[callId]) {
364
+ [self.sessionListeners[callId] removeObjectForKey:key];
365
+ }
366
+ }
367
+
368
+ #pragma mark - JCallReceiveDelegate
369
+
370
+ - (void)callDidReceive:(id<JCallSession>)callSession {
371
+ for (NSString *key in self.receiveListeners) {
372
+ [self handleCallReceive:callSession forKey:key];
373
+ }
374
+ }
375
+
376
+ - (void)handleCallReceive:(id<JCallSession>)callSession forKey:(NSString *)key {
377
+ NSDictionary *sessionDic = [JModelFactory callSessionToDic:callSession];
378
+ [self sendEventWithName:@"CallManager_onCallReceive"
379
+ body:@{@"key" : key, @"callSession" : sessionDic}];
380
+ }
381
+
382
+ #pragma mark - JConversationCallDelegate
383
+
384
+ - (void)callInfoDidUpdate:(JCallInfo *)callInfo
385
+ inConversation:(JConversation *)conversation
386
+ isFinished:(BOOL)isFinished {
387
+ for (NSString *key in self.conversationCallListeners) {
388
+ [self handleCallInfoUpdate:callInfo
389
+ conversation:conversation
390
+ isFinished:isFinished
391
+ forKey:key];
392
+ }
393
+ }
394
+
395
+ - (void)handleCallInfoUpdate:(JCallInfo *)callInfo
396
+ conversation:(JConversation *)conversation
397
+ isFinished:(BOOL)isFinished
398
+ forKey:(NSString *)key {
399
+ NSDictionary *callInfoDic = [JModelFactory callInfoToDic:callInfo];
400
+ NSDictionary *conversationDic =
401
+ [JModelFactory conversationToDic:conversation];
402
+
403
+ [self sendEventWithName:@"CallManager_onCallInfoUpdate"
404
+ body:@{
405
+ @"key" : key,
406
+ @"callInfo" : callInfoDic,
407
+ @"conversation" : conversationDic,
408
+ @"isFinished" : @(isFinished)
409
+ }];
410
+ }
411
+
412
+ @end
413
+
414
+ #pragma mark - JCallSessionDelegateWrapper
415
+
416
+ @implementation JCallSessionDelegateWrapper
417
+
418
+ - (instancetype)initWithCallId:(NSString *)callId
419
+ key:(NSString *)key
420
+ module:(JuggleIMCallModule *)module {
421
+ if (self = [super init]) {
422
+ _callId = callId;
423
+ _key = key;
424
+ _module = module;
425
+ }
426
+ return self;
427
+ }
428
+
429
+ - (void)callDidConnect {
430
+ NSLog(@"CallSession_onCallConnect callId=%@", self.callId);
431
+ [self.module sendEventWithName:@"CallSession_onCallConnect"
432
+ body:@{@"callId" : self.callId}];
433
+ }
434
+
435
+ - (void)callDidFinish:(JCallFinishReason)finishReason {
436
+ NSLog(@"CallSession_onCallFinish callId=%@ finishReason=%ld", self.callId,
437
+ finishReason);
438
+ [self.module sendEventWithName:@"CallSession_onCallFinish"
439
+ body:@{
440
+ @"callId" : self.callId,
441
+ @"finishReason" : @(finishReason)
442
+ }];
443
+ }
444
+
445
+ - (void)usersDidInvite:(NSArray<NSString *> *)userIdList
446
+ inviterId:(NSString *)inviterId {
447
+ NSLog(@"CallSession_onUsersInvite callId=%@ inviterId=%@ userIdList=%@",
448
+ self.callId, inviterId, userIdList);
449
+ [self.module sendEventWithName:@"CallSession_onUsersInvite"
450
+ body:@{
451
+ @"callId" : self.callId,
452
+ @"inviterId" : inviterId,
453
+ @"userIdList" : userIdList
454
+ }];
455
+ }
456
+
457
+ - (void)usersDidConnect:(NSArray<NSString *> *)userIdList {
458
+ NSLog(@"CallSession_onUsersConnect callId=%@ userIdList=%@", self.callId,
459
+ userIdList);
460
+ [self.module
461
+ sendEventWithName:@"CallSession_onUsersConnect"
462
+ body:@{@"callId" : self.callId, @"userIdList" : userIdList}];
463
+ }
464
+
465
+ - (void)usersDidLeave:(NSArray<NSString *> *)userIdList {
466
+ [self.module
467
+ sendEventWithName:@"CallSession_onUsersLeave"
468
+ body:@{@"callId" : self.callId, @"userIdList" : userIdList}];
469
+ }
470
+
471
+ - (void)userCamaraDidChange:(BOOL)enable userId:(NSString *)userId {
472
+ NSLog(@"CallSession_onUserCameraEnable callId=%@ userId=%@ enable=%d",
473
+ self.callId, userId, enable);
474
+ [self.module sendEventWithName:@"CallSession_onUserCameraEnable"
475
+ body:@{
476
+ @"callId" : self.callId,
477
+ @"userId" : userId,
478
+ @"enable" : @(enable)
479
+ }];
480
+ }
481
+
482
+ - (void)userMicrophoneDidChange:(BOOL)enable userId:(NSString *)userId {
483
+ NSLog(@"CallSession_onUserMicrophoneEnable callId=%@ userId=%@ enable=%d",
484
+ self.callId, userId, enable);
485
+ [self.module sendEventWithName:@"CallSession_onUserMicrophoneEnable"
486
+ body:@{
487
+ @"callId" : self.callId,
488
+ @"userId" : userId,
489
+ @"enable" : @(enable)
490
+ }];
491
+ }
492
+
493
+ - (void)soundLevelDidUpdate:
494
+ (NSDictionary<NSString *, NSNumber *> *)soundLevels {
495
+ [self.module sendEventWithName:@"CallSession_onSoundLevelUpdate"
496
+ body:@{
497
+ @"callId" : self.callId,
498
+ @"soundLevels" : soundLevels
499
+ }];
500
+ }
501
+
502
+ - (void)videoFirstFrameDidRender:(NSString *)userId {
503
+ NSLog(@"CallSession_onVideoFirstFrameRender callId=%@ userId=%@", self.callId,
504
+ userId);
505
+ [self.module
506
+ sendEventWithName:@"CallSession_onVideoFirstFrameRender"
507
+ body:@{@"callId" : self.callId, @"userId" : userId}];
508
+ }
509
+
510
+ - (void)errorDidOccur:(JCallErrorCode)errorCode {
511
+ NSLog(@"CallSession_onErrorOccur callId=%@ errorCode=%ld", self.callId,
512
+ errorCode);
513
+ [self.module sendEventWithName:@"CallSession_onErrorOccur"
514
+ body:@{
515
+ @"callId" : self.callId,
516
+ @"errorCode" : @(errorCode)
517
+ }];
518
+ }
519
+
520
+ @end
@@ -0,0 +1,51 @@
1
+ # iOS Call Module - File Summary
2
+
3
+ ## Created Files
4
+
5
+ ### Bridge Module
6
+ - `ios/call/JuggleIMCallModule.h` - Main bridge module header
7
+ - `ios/call/JuggleIMCallModule.m` - Main bridge module implementation (450+ lines)
8
+
9
+ ### View Components
10
+ - `ios/call/view/ZegoSurfaceView.h` - Video surface view header
11
+ - `ios/call/view/ZegoSurfaceView.m` - Video surface view implementation
12
+ - `ios/call/view/ZegoSurfaceViewManager.h` - View manager header
13
+ - `ios/call/view/ZegoSurfaceViewManager.m` - View manager implementation
14
+
15
+ ## Modified Files
16
+
17
+ ### Field Mapping Fixes
18
+ - `ios/JModelFactory.m`
19
+ - Line 330: `inviterId` → `inviter`
20
+ - Line 343: Added `currentMember` field
21
+ - Line 163: `userName` → `nickname`
22
+ - Line 167: `portrait` → `avatar`
23
+
24
+ ## Directory Structure
25
+ ```
26
+ ios/
27
+ ├── call/
28
+ │ ├── JuggleIMCallModule.h
29
+ │ ├── JuggleIMCallModule.m
30
+ │ └── view/
31
+ │ ├── ZegoSurfaceView.h
32
+ │ ├── ZegoSurfaceView.m
33
+ │ ├── ZegoSurfaceViewManager.h
34
+ │ └── ZegoSurfaceViewManager.m
35
+ ├── JModelFactory.h (existing, no changes)
36
+ └── JModelFactory.m (modified)
37
+ ```
38
+
39
+ ## TODO Items
40
+
41
+ See `walkthrough.md` for detailed TODO items that need verification:
42
+ 1. Zego engine initialization appSign parameter
43
+ 2. Remove delegate methods availability
44
+ 3. Video denoise parameters conversion
45
+
46
+ ## Next Steps
47
+
48
+ 1. Verify TODO items against iOS SDK
49
+ 2. Register modules in Xcode project/podspec
50
+ 3. Test compilation
51
+ 4. Test runtime functionality
@@ -0,0 +1,7 @@
1
+ #import <UIKit/UIKit.h>
2
+
3
+ @interface ZegoSurfaceView : UIView
4
+
5
+ @property(nonatomic, strong) UIView *videoView;
6
+
7
+ @end
@@ -0,0 +1,45 @@
1
+ #import "ZegoSurfaceView.h"
2
+
3
+ @implementation ZegoSurfaceView
4
+
5
+ - (instancetype)initWithFrame:(CGRect)frame {
6
+ if (self = [super initWithFrame:frame]) {
7
+ // videoView will be created lazily in layoutSubviews when bounds are
8
+ // available
9
+ }
10
+ return self;
11
+ }
12
+
13
+ - (instancetype)init {
14
+ if (self = [super init]) {
15
+ // videoView will be created lazily in layoutSubviews when bounds are
16
+ // available
17
+ }
18
+ return self;
19
+ }
20
+
21
+ - (void)setupVideoView {
22
+ NSLog(@"[ZegoSurfaceView] setupVideoView with bounds: %@",
23
+ NSStringFromCGRect(self.bounds));
24
+ // Create a container view for video rendering
25
+ _videoView = [[UIView alloc] initWithFrame:self.bounds];
26
+ _videoView.autoresizingMask =
27
+ UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
28
+ _videoView.backgroundColor = [UIColor blackColor];
29
+ [self addSubview:_videoView];
30
+ }
31
+
32
+ - (void)layoutSubviews {
33
+ [super layoutSubviews];
34
+
35
+ // Lazy initialization of videoView when bounds are available
36
+ if (!_videoView && !CGRectIsEmpty(self.bounds)) {
37
+ [self setupVideoView];
38
+ }
39
+
40
+ if (_videoView) {
41
+ _videoView.frame = self.bounds;
42
+ }
43
+ }
44
+
45
+ @end
@@ -0,0 +1,5 @@
1
+ #import <React/RCTViewManager.h>
2
+
3
+ @interface ZegoSurfaceViewManager : RCTViewManager
4
+
5
+ @end
@@ -0,0 +1,12 @@
1
+ #import "ZegoSurfaceViewManager.h"
2
+ #import "ZegoSurfaceView.h"
3
+
4
+ @implementation ZegoSurfaceViewManager
5
+
6
+ RCT_EXPORT_MODULE(ZegoSurfaceView)
7
+
8
+ - (UIView *)view {
9
+ return [[ZegoSurfaceView alloc] init];
10
+ }
11
+
12
+ @end
@@ -16,5 +16,7 @@ Pod::Spec.new do |s|
16
16
  s.requires_arc = true
17
17
 
18
18
  s.dependency "React-Core"
19
- s.dependency "JuggleIM", "~> 1.8.29"
19
+ s.dependency "JuggleIM", "~> 1.8.30"
20
+ s.dependency 'JZegoCall', '1.8.25'
21
+
20
22
  end
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "juggleim-rnsdk",
3
- "version": "0.1.5",
3
+ "version": "0.1.8",
4
4
  "description": "React Native wrapper for Juggle IM SDK",
5
5
  "main": "src/index.js",
6
6
  "types": "src/index.d.ts",