larksr_websdk 3.2.320 → 3.2.321

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.
@@ -141,5 +141,18 @@ interface ILarkSRConfig {
141
141
  * 需要注意默认打开的是系统中默认的视频设备。
142
142
  */
143
143
  videoInputAutoStart?: boolean;
144
+ /**
145
+ * mouseZoomDirection
146
+ * 用于移动端捏合缩放操作与应用鼠标缩放的对应关系
147
+ * 1:鼠标滚轮向上为放大,
148
+ * 0:鼠标滚轮向下为放大(default)
149
+ */
150
+ mouseZoomDirection?: number;
151
+ /**
152
+ * 触摸指令模式,对应后台应用管理->应用编辑->移动端高级设置->触摸指令模式 优先级高于后台配置
153
+ * 触摸指令,移动端的触摸指令对应为云端的触屏还是鼠标
154
+ * 'touchScreen' | 'mouse'
155
+ */
156
+ touchOperateMode?: 'touchScreen' | 'mouse';
144
157
  }
145
158
  ```
@@ -393,8 +393,10 @@ videoInputAutoStart?: boolean;
393
393
 
394
394
  ```typescript
395
395
  /**
396
- * 采集一帧图像
397
- */
396
+ * 采集一帧图像
397
+ * @params data: any 抛出采集事件时抛出的附加data,比如采集的时间戳
398
+ * @return { data: any, base64: base64string } 返回传入的 data 和采集的 base64 字符串
399
+ */
398
400
  captrueFrame(data: any)
399
401
  /**
400
402
  * 设置是否强制横屏显示内容.
@@ -403,4 +405,8 @@ captrueFrame(data: any)
403
405
  * @param force 是否强制横屏
404
406
  */
405
407
  setMobileForceLandScape(force: boolean): void;
408
+ /**
409
+ * 从DOM种删除渲染组件,注意删除渲染组件之后将无法再次进入应用,所有状态将失效,不可恢复,只能重新new LarkSR
410
+ */
411
+ destroy(): void;
406
412
  ```
@@ -148,6 +148,166 @@ larksr.op.setGamepadEnable(enable: boolean);
148
148
  larksr.op.setTouchEnable(enable: boolean);
149
149
  ```
150
150
 
151
+ ### 操作类中的 keyboardhandler
152
+
153
+ ```javascript
154
+ // 设置键盘事件默认拦截浏览器默认行为。
155
+ // 在 preventKeys 中的将拦截,如果数组设置为空则全部不拦截
156
+ // 默认拦截 F1 F5 F12
157
+ larksr.op.keyboardHandler.preventKeys = [["F1", "F5", "F12"]];
158
+ ```
159
+
160
+ ### 操作类中的 gestureHandler
161
+
162
+ gestureHandler 处理将移动端触摸事件对应为鼠标事件的过程。
163
+
164
+ #### 调节触摸事件触发参数
165
+
166
+ ```javascript
167
+ // 触摸事件在对应为鼠标事件中,提供的鼠标相对移动的速度。
168
+ // 即 rx = (pxNew-pxOld) * relativeMouseMoveSpeed
169
+ // ry = (pyNew-pyOld)* relativeMouseMoveSpeed
170
+ // 可能会影响使用相对移动(rawInput)判断的云端应用的效果
171
+ larksr.op.gestureHandler.relativeMouseMoveSpeed = 2;
172
+ // 触摸模拟为鼠标事件时,模拟点击的判断范围。
173
+ // 实际的鼠标事件点击时一般不会移动,而触摸操作基本上一定会触发移动事件
174
+ // 如果要模拟PC上的击事件,比如单击或双击,在鼠标按下和抬起之间不应再插入鼠标移动
175
+ // 当触发移动事件时,超出该判断范围才发送移动事件。
176
+ // 注意,修改该值可能会导致云端应用上判断单击或双击失败,如果云端应用不包含类似操作基本影响不大
177
+ larksr.op.gestureHandler.tapLimitRadius = 20;
178
+ // 在该时间范围下将尝试发送单机按下事件,修改该值可能会导致单机事件的触发成功率
179
+ larksr.op.gestureHandler.tapLimitTimeout = 100;
180
+ ```
181
+
182
+ #### 拦截触摸事件回调
183
+
184
+ 可以通过拦截触摸事件回调的方式,设置具体的触摸事件和鼠标事件的对应关系。
185
+
186
+ > 通过 larksr.op.gestureHandler 设置回调函数
187
+ > 下面例子中的 GESTURE_TYPE 为 SDK 导出的手势事件类型,如果用 amd 方式引入的 SDK,所有导出类型均在 larksr_websdk 全局对象下。
188
+ > 如果是使用其他方式引入 SDK,如 improt 方式导入 `import { GESTURE_TYPE } from 'larksr_websdk'`
189
+ > 以下示例代码忽略 larksr 创建等过程
190
+
191
+ ```javascript
192
+ // 参数 event 有如下字段
193
+ // event : {
194
+ // type: GESTURE_TYPE; 手势事件的类型
195
+ // x: number; 转换为云端的坐标 x
196
+ // y: number; 转换为云端的坐标 y
197
+ // rx: number; 转换为云端的坐标 rx
198
+ // ry: number; 转换为云端的坐标 ry
199
+ // edge: boolean; 是否到触摸边缘
200
+ // rawEvent: any; 未转换为云端坐标的触摸事件
201
+ // }
202
+ //
203
+ larksr.op.gestureHandler = (event) => {
204
+ console.log(event);
205
+ const p = event;
206
+ switch (event.type) {
207
+ // 单只触摸开始移动鼠标到当前位置
208
+ case GESTURE_TYPE.SINGLE_FINGER_TOUCH_START:
209
+ larksr.mouseMove(p.x, p.y, p.rx, p.ry);
210
+ break;
211
+ // 单指单击 -》左键单击
212
+ case GESTURE_TYPE.SINGLE_FINGER_TAP:
213
+ larksr.mouseTap(p.x, p.y, CloudLark.MouseKey.LEFT);
214
+ break;
215
+ // 单指按下 -》 移动鼠标, 按下鼠标
216
+ case GESTURE_TYPE.SINGLE_FINGER_TAP_DOWN:
217
+ // move mouse first
218
+ larksr.mouseMove(p.x, p.y, p.rx, p.ry);
219
+ // sync tap down
220
+ larksr.mouseDown(p.x, p.y, CloudLark.MouseKey.LEFT);
221
+ break;
222
+ // 单指抬起 -》 移动鼠标, 抬起鼠标
223
+ case GESTURE_TYPE.SINGLE_FINGER_TAP_UP:
224
+ // move mouse first
225
+ larksr.moseMove(p.x, p.y, p.rx, p.ry);
226
+ // sync tap down
227
+ larksr.mouseUp(p.x, p.y, CloudLark.MouseKey.LEFT);
228
+ break;
229
+ // 单指滑动 -》 移动鼠标
230
+ case GESTURE_TYPE.SINGLE_FINGER_SWIPE:
231
+ larksr.moseMove(p.x, p.y, p.rx, p.ry);
232
+ break;
233
+ // 单指开始滑动 -》 鼠标左键按下
234
+ case GESTURE_TYPE.SINGLE_FINGER_SWIPE_START:
235
+ // sync tap down
236
+ larksr.mouseDown(p.x, p.y, CloudLark.MouseKey.LEFT);
237
+ break;
238
+ // 单指滑动结束 -》 鼠标左键抬起
239
+ case GESTURE_TYPE.SINGLE_FINGER_SWIPE_END:
240
+ larksr.mouseUp(p.x, p.y, CloudLark.MouseKey.LEFT);
241
+ break;
242
+ // 双指单击 -》 鼠标右键单击
243
+ case GESTURE_TYPE.DOUBLE_FINGER_TAP:
244
+ larksr.mouseTap(p.x, p.y, CloudLark.MouseKey.RIGHT);
245
+ break;
246
+ // 双指按下 -》 移动鼠标
247
+ case GESTURE_TYPE.DOUBLE_FINGER_TAP_DOWN:
248
+ // move mouse first
249
+ larksr.moseMove(p.x, p.y, p.rx, p.ry);
250
+ // 抬起所有
251
+ // sync tap down
252
+ larksr.mouseDown(p.x, p.y, CloudLark.MouseKey.RIGHT);
253
+ break;
254
+ case GESTURE_TYPE.DOUBLE_FINGER_TAP_UP:
255
+ // move mouse first
256
+ larksr.moseMove(p.x, p.y, p.rx, p.ry);
257
+ // sync tap up
258
+ larksr.mouseUp(p.x, p.y, CloudLark.MouseKey.RIGHT);
259
+ break;
260
+ // 双指移动 -》 滚动滚轮
261
+ case GESTURE_TYPE.DOUBLE_FINGER_SWIPE:
262
+ // move mouse mid
263
+ // this.$emitMouseWheel(p.x, p.y, e.motion.y);
264
+ larksr.moseMove(p.x, p.y, p.rx, p.ry);
265
+ break;
266
+ case GESTURE_TYPE.DOUBLE_FINGER_EXPAND:
267
+ // windows 消息 deltaY 上是 +120 下是 -120
268
+ // 双指扩展向外滑动
269
+ // 滚轮向下移动
270
+ // move mouse mid
271
+ larksr.mouseWheel(p.x, p.y, 120);
272
+ break;
273
+ case GESTURE_TYPE.DOUBLE_FINGER_SHRINK:
274
+ // windows 消息 deltaY 上是 +120 下是 -120
275
+ // 双指向内滑动
276
+ // 滚轮向上移动
277
+ larksr.mouseWheel(p.x, p.y, -120);
278
+ break;
279
+ case GESTURE_TYPE.DOUBLE_FINGER_SWIPE_END:
280
+ // sync tap up
281
+ larksr.mouseUp(p.x, p.y, CloudLark.MouseKey.RIGHT);
282
+ break;
283
+ // 三指单击 -》 鼠标中键单击
284
+ case GESTURE_TYPE.TRIPLE_FINGER_TAP:
285
+ larksr.mouseTap(p.x, p.y, CloudLark.MouseKey.MIDDLE);
286
+ break;
287
+ // 三指滑动 -》 移动鼠标
288
+ case GESTURE_TYPE.TRIPLE_FINGER_SWIPE:
289
+ larksr.mouseMove(p.x, p.y, p.rx, p.ry);
290
+ break;
291
+ // 三指滑动按下 -》 鼠标中键按下
292
+ case GESTURE_TYPE.TRIPLE_FINGER_SWIPE_START:
293
+ larksr.mouseMove(p.x, p.y, p.rx, p.ry);
294
+ //
295
+ larksr.mouseDown(p.x, p.y, CloudLark.MouseKey.MIDDLE);
296
+ break;
297
+ // 三指滑动按下 -》 鼠标中键抬起
298
+ case GESTURE_TYPE.TRIPLE_FINGER_SWIPE_END:
299
+ // sync tap up
300
+ larksr.mouseUp(p.x, p.y, CloudLark.MouseKey.MIDDLE);
301
+ break;
302
+ // 所有手指抬起
303
+ case GESTURE_TYPE.RELEASE:
304
+ break;
305
+ default:
306
+ break;
307
+ }
308
+ };
309
+ ```
310
+
151
311
  ## 全屏锁屏
152
312
 
153
313
  ```javascript
@@ -160,3 +160,76 @@ larksr 配置项新增自动打开视频输入配置,在`new LarkSR({ ... 此处
160
160
  */
161
161
  videoInputAutoStart?: boolean;
162
162
  ```
163
+
164
+ ## V3.2.321
165
+
166
+ larksr 配置项新增默认放大手势和鼠标滚轮对应关系和是否使用触摸屏模式,在`new LarkSR({ ... 此处省略其他配置 ... mouseZoomDirection: 0, touchOperateMode: "mouse"})` 时传入
167
+
168
+ > 手动传入的配置优先级高于后台配置
169
+
170
+ ```javascript
171
+ /**
172
+ * mouseZoomDirection
173
+ * 用于移动端捏合缩放操作与应用鼠标缩放的对应关系
174
+ * 1:鼠标滚轮向上为放大,
175
+ * 0:鼠标滚轮向下为放大(default)
176
+ */
177
+ mouseZoomDirection?: number;
178
+ /**
179
+ * 触摸指令模式,对应后台应用管理->应用编辑->移动端高级设置->触摸指令模式 优先级高于后台配置
180
+ * 触摸指令,移动端的触摸指令对应为云端的触屏还是鼠标
181
+ * 'touchScreen' | 'mouse'
182
+ */
183
+ touchOperateMode?: 'touchScreen' | 'mouse';
184
+ ```
185
+
186
+ captrueFrame 方法会将截图和通过返回值带出来
187
+
188
+ ```javascript
189
+ /**
190
+ * 采集一帧图像
191
+ * @params data: any 抛出采集事件时抛出的附加data,比如采集的时间戳
192
+ * @return { data: any, base64: base64string } 返回传入的 data 和采集的 base64 字符串
193
+ */
194
+ captrueFrame(data: any)
195
+ ```
196
+
197
+ 新增销毁方法,要注意,销毁之后 larksr 对象不再可用
198
+
199
+ ```javascript
200
+ /**
201
+ * 从DOM种删除渲染组件,注意删除渲染组件之后将无法再次进入应用,所有状态将失效,不可恢复,只能重新new LarkSR
202
+ */
203
+ destroy(): void;
204
+ ```
205
+
206
+ 添加操作类中的 keyboardhandler 开放访问,可用配置拦截哪些按键的默认行为
207
+
208
+ ```javascript
209
+ // 设置键盘事件默认拦截浏览器默认行为。
210
+ // 在 preventKeys 中的将拦截,如果数组设置为空则全部不拦截
211
+ // 默认拦截 F1 F5 F12
212
+ larksr.op.keyboardHandler.preventKeys = [["F1", "F5", "F12"]];
213
+ ```
214
+
215
+ 操作类中添加 gestureHandler 公开访问,gestureHandler 处理将移动端触摸事件对应为鼠标事件的过程。
216
+
217
+ 可用通过 gestureHandler 调节触摸事件触发参数
218
+
219
+ ```javascript
220
+ // 触摸事件在对应为鼠标事件中,提供的鼠标相对移动的速度。
221
+ // 即 rx = (pxNew-pxOld) * relativeMouseMoveSpeed
222
+ // ry = (pyNew-pyOld)* relativeMouseMoveSpeed
223
+ // 可能会影响使用相对移动(rawInput)判断的云端应用的效果
224
+ larksr.op.gestureHandler.relativeMouseMoveSpeed = 2;
225
+ // 触摸模拟为鼠标事件时,模拟点击的判断范围。
226
+ // 实际的鼠标事件点击时一般不会移动,而触摸操作基本上一定会触发移动事件
227
+ // 如果要模拟PC上的击事件,比如单击或双击,在鼠标按下和抬起之间不应再插入鼠标移动
228
+ // 当触发移动事件时,超出该判断范围才发送移动事件。
229
+ // 注意,修改该值可能会导致云端应用上判断单击或双击失败,如果云端应用不包含类似操作基本影响不大
230
+ larksr.op.gestureHandler.tapLimitRadius = 20;
231
+ // 在该时间范围下将尝试发送单机按下事件,修改该值可能会导致单机事件的触发成功率
232
+ larksr.op.gestureHandler.tapLimitTimeout = 100;
233
+ ```
234
+
235
+ 可用通过 gestureHandler 拦截触摸事件回调, 通过 `larksr.op.gestureHandler` 设置回调函数