Showing
1 changed file
with
252 additions
and
2 deletions
1 | -# HHBigFile | ||
2 | -100MB file test | 1 | +# HHDoctorSDK 接入说明 |
2 | + | ||
3 | +<p align="right"> | ||
4 | +北京和缓医疗科技有限公司<br/> | ||
5 | +网址:https://www.hh-medic.com <br/> | ||
6 | +地址:北京市东城区东直门来福士7层 | ||
7 | +</p> | ||
8 | + | ||
9 | + * [HHDoctorSDK 接入说明](#hhdoctorsdk-接入说明) | ||
10 | + * [1. 概要介绍](#1-概要介绍) | ||
11 | + * [2. 集成方式](#2-集成方式) | ||
12 | + * [2.1. 手动集成](#21-手动集成) | ||
13 | + * [2.2. 自动集成](#22-自动集成) | ||
14 | + * [2.3. 调用规则](#23-调用规则) | ||
15 | + * [3. 初始化](#3-初始化) | ||
16 | + * [4. 登录账户](#4-登录账户) | ||
17 | + * [4.1. 登录](#41-登录) | ||
18 | + * [4.2. 登出](#42-登出) | ||
19 | + * [5. 视频呼叫](#5-视频呼叫) | ||
20 | + * [6. 代理(delegate)(可选)](#6-代理delegate可选) | ||
21 | + * [6.1. 加入](#61-加入) | ||
22 | + * [6.2. 移除](#62-移除) | ||
23 | + | ||
24 | +## 1.概要介绍 | ||
25 | +## 2.集成方式 | ||
26 | + HHDoctorSDK 提供两种集成方式:您既可以通过 CocoaPods 自动集成我们的 SDK,也可以通过手动下载 SDK, 然后添加到您的项目中。 | ||
27 | +我们提供的下载地址: | ||
28 | + | ||
29 | + 我们提供了发布仓库 [HHDoctorSDK](https://code.hh-medic.com/hh_public/HHDoctorSDK.ios)。 | ||
30 | + | ||
31 | +由于呼叫视频需要相机相册权限,需要在info.plist中添加对应的权限,否则会导致无法调用。 | ||
32 | + | ||
33 | +``` | ||
34 | +<key>NSPhotoLibraryUsageDescription</key> | ||
35 | +<string>应用需要使用相册权限,以便您向医生发送健康资料。</string> | ||
36 | +<key>NSCameraUsageDescription</key> | ||
37 | +<string>应用需使用相机权限,以便您向医生进行视频咨询。</string> | ||
38 | +<key>NSMicrophoneUsageDescription</key> | ||
39 | +<string>应用需使用麦克风权限,以便您向医生进行视频咨询。</string> | ||
40 | +``` | ||
41 | + | ||
42 | +### 2.1.手动集成 | ||
43 | + | ||
44 | +1. 根据自己工程需要,下载对应版本的 HHMSDK,得到 NIMSDK.framework ,NIMAVChat.framework,NVS.framework,SecurityKit.framework 和 HHDoctorSDK.framework,以及未链接的全部三方依赖库 ,将他们导入工程。 | ||
45 | +2. 添加其他 HHDoctorSDK 依赖库。 | ||
46 | + | ||
47 | + - SystemConfiguration.framework | ||
48 | + - MobileCoreServices.framework | ||
49 | + - AVFoundation.framwork | ||
50 | + - CoreTelephony.framework | ||
51 | + - CoreMedia.framework | ||
52 | + - VideoToolbox.framework | ||
53 | + - AudioToolbox.framework | ||
54 | + - libz | ||
55 | + - libsqlite3.0 | ||
56 | + - libc++ | ||
57 | +3. 在 `Build Settings` -> `Other Linker Flags` 里,添加选项 `-ObjC`。 | ||
58 | +4. 在 `Build Settings` -> `Enable Bitcode 里,设置为 `No`。 | ||
59 | +5. 如果需要在后台时保持音频通话状态,在 `Capabilities` -> `Background Modes` 里勾选 `audio, airplay, and Picture in Picture`。 | ||
60 | + | ||
61 | +### 2.2.自动集成 | ||
62 | +* 在 `Podfile` 文件中加入 | ||
63 | + | ||
64 | +```shell | ||
65 | +use_frameworks! | ||
66 | +pod 'HHDoctorSDK', :git => "git@code.hh-medic.com:hh_public/HHDoctorSDK.ios.git" | ||
67 | +``` | ||
68 | +* 安装 | ||
69 | + | ||
70 | +``` shell | ||
71 | +pod install | ||
72 | +``` | ||
73 | + | ||
74 | +### 2.3.调用规则 | ||
75 | +所有 HHDoctorSDK 业务均通过 HHMSDK 单例调用 | ||
76 | + | ||
77 | +```swift | ||
78 | +public class HHMSDK : NSObject { | ||
79 | + | ||
80 | + public static let `default`: HHDoctorSDK.HHMSDK | ||
81 | +} | ||
82 | +``` | ||
83 | + | ||
84 | +## 3.初始化 | ||
85 | +在使用 HHDoctorSDK 任何方法之前,都应该首先调用初始化方法。正常业务情况下,初始化方法有仅只应调用一次。 | ||
86 | + | ||
87 | +HHSDKOptions 选项参数列表 | ||
88 | + | ||
89 | +参数|类型|说明 | ||
90 | +------|---|-------- | ||
91 | +isDevelopment|Bool|服务器模式(测试/正式) | ||
92 | +isDebug|Bool|调试模式(是否打印日志) | ||
93 | +hudManager| HHHUDable|自定义 progressHUD | ||
94 | +hudDisTime| Double|hud 自动消失时间 | ||
95 | + | ||
96 | +调用示例 | ||
97 | + | ||
98 | +```swift | ||
99 | +let option = HHSDKOptions(isDebug: true, isDevelop: true) | ||
100 | +// let option = HHSDKOptions() | ||
101 | +// option.isDevelopment = true | ||
102 | +// option.isDebug = true | ||
103 | +// option.hudDisTime = 2 | ||
104 | +HHMSDK.default.start(option: option) | ||
105 | +``` | ||
106 | + | ||
107 | +## 4. 登录账户 | ||
108 | +在对医生视频呼叫之前,需要先登录账号信息。账号的 uuid 由和缓提供。 | ||
109 | +### 4.1. 登录 | ||
110 | + | ||
111 | +* 原型 | ||
112 | + | ||
113 | +```swift | ||
114 | +public class HHMSDK : NSObject { | ||
115 | + | ||
116 | + /// 登录账号 | ||
117 | + /// | ||
118 | + /// - Parameters: | ||
119 | + /// - uuid: 用户的 唯一标志符 | ||
120 | + /// - completion: 完成回调 | ||
121 | + public func login(uuid: Int, completion: @escaping HHMedicSDK.HHLoginHandler) | ||
122 | +} | ||
123 | +``` | ||
124 | + | ||
125 | +* 调用示例 | ||
126 | + | ||
127 | +```swift | ||
128 | +// 登录 | ||
129 | +HHMSDK.default.login(uuid: 100001531) { (error) in | ||
130 | + if let aError = error { | ||
131 | + print("登录错误: " + aError.localizedDescription) | ||
132 | + } | ||
133 | +} | ||
134 | +``` | ||
135 | +error 为登录错误信息,成功则为 nil。 | ||
136 | + | ||
137 | +### 4.2. 登出 | ||
138 | +应用层登出/注销/切换自己的账号时需要调用 HHMSDK 的登出操作,该操作会通知和缓服务器进行 APNs 推送信息的解绑操作,避免用户已登出但推送依然发送到当前设备的情况发生。 | ||
139 | + | ||
140 | +* 原型 | ||
141 | + | ||
142 | +```swift | ||
143 | +public class HHMSDK : NSObject { | ||
144 | + | ||
145 | + /// 登出 | ||
146 | + public func logout() | ||
147 | +} | ||
148 | +``` | ||
149 | + | ||
150 | +* 调用示例 | ||
151 | + | ||
152 | +```swift | ||
153 | +// 登出 | ||
154 | +HHMSDK.default.logout() | ||
155 | +``` | ||
156 | + | ||
157 | +## 5. 视频呼叫 | ||
158 | +根据实际场景的不同,可以进行成人、儿童方向的向医生咨询。 | ||
159 | + | ||
160 | +* 原型 | ||
161 | + | ||
162 | +```swift | ||
163 | +public class HHMSDK : NSObject { | ||
164 | + | ||
165 | + /// 主叫发起通话 | ||
166 | + /// | ||
167 | + /// - Parameter type: 呼叫类型 | ||
168 | + public func startCall(_ type: HHMedicSDK.HHCallType) | ||
169 | +} | ||
170 | +``` | ||
171 | + | ||
172 | +* 调用示例 | ||
173 | + | ||
174 | +```swift | ||
175 | +// 咨询儿童问题 | ||
176 | +HHMSDK.default.startCall(.child) | ||
177 | + | ||
178 | +// 咨询成人问题 | ||
179 | +HHMSDK.default.startCall(.adult) | ||
180 | +``` | ||
181 | + | ||
182 | +HHCallType 枚举列表 | ||
183 | + | ||
184 | +值 | 说明 | ||
185 | +--------- | ------------- | ||
186 | +child | 儿童 | ||
187 | +adult | 成人 | ||
188 | + | ||
189 | +## 6. 代理(delegate)(可选) | ||
190 | +代理主要用于视频过程中的状态反馈。如果不需要状态反馈,可以不考虑该代理。 | ||
191 | +所有的代理方法都是可选的,可以根据自己的实际需要实现不同的代理方法。 | ||
192 | + | ||
193 | +* 原型 | ||
194 | + | ||
195 | +```swift | ||
196 | +/// 视频管理器代理 | ||
197 | +public protocol HHMVideoDelegate : NSObjectProtocol { | ||
198 | + | ||
199 | + /// 主动视频时的呼叫状态变化 | ||
200 | + /// | ||
201 | + /// - Parameter state: 当前呼叫状态 | ||
202 | + public func callStateChange(_ state: HHMedicSDK.HHMCallingState) | ||
203 | + | ||
204 | + /// 通话已接通 | ||
205 | + public func callDidEstablish() | ||
206 | + | ||
207 | + /// 呼叫失败 | ||
208 | + public func onFail(error: Error) | ||
209 | + | ||
210 | + public func onCancel() | ||
211 | + | ||
212 | + /// 通话已结束 (接通之后才有结束) | ||
213 | + public func callDidFinish() | ||
214 | + | ||
215 | + /// 转呼医生 | ||
216 | + public func onExtensionDoctor() | ||
217 | + | ||
218 | + /// 接收到呼叫(被呼叫方) | ||
219 | + /// | ||
220 | + /// - Parameters: | ||
221 | + /// - callID: 呼叫的 id | ||
222 | + /// - from: 呼叫人 id | ||
223 | + public func onReceive(_ callID: String, from: String) | ||
224 | + | ||
225 | + /// 收到视频呼入时的操作(被呼叫方) | ||
226 | + /// | ||
227 | + /// - Parameter accept: 接受或者拒接 | ||
228 | + public func onResponse(_ accept: Bool) | ||
229 | + | ||
230 | + /// 缺少必要权限 | ||
231 | + /// | ||
232 | + /// - Parameter type: 缺少的权限类型 | ||
233 | + public func onLeakPermission(_ type: HHMedicSDK.PermissionType) | ||
234 | +} | ||
235 | +``` | ||
236 | + | ||
237 | +### 6.1. 加入 | ||
238 | +代理支持同时设置多个。 | ||
239 | + | ||
240 | +```swift | ||
241 | +HHMSDK.default.add(delegate: self) | ||
242 | +``` | ||
243 | + | ||
244 | +### 6.2. 移除 | ||
245 | + | ||
246 | +```swift | ||
247 | +HHMSDK.default.remove(delegate: self) | ||
248 | +``` | ||
249 | + | ||
250 | + | ||
251 | + | ||
252 | + |
-
Please register or login to post a comment