@plasosdk/plaso-electron-sdk 1.3.2 → 1.3.3

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 (2) hide show
  1. package/README.md +56 -121
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  - MacOS 支持 x64、arm64架构
4
4
  - Windows 支持 x86、x64架构
5
+
5
6
  **<font color=red>Electron 版本要求: 14.0.0~22.3.27</font>**
6
7
 
7
8
  # 1、接入步骤
@@ -58,11 +59,7 @@ MacOS打包完毕后,建议安装打好的包后自行验证上述的操作时
58
59
 
59
60
  ## 1.2、使用
60
61
 
61
- ### 1.2.1、npm 包位置
62
-
63
- 将下载的 npm 包放到 应用本地的`node_modules`目录下,一般是 electron 应用的`resources/app`目录下
64
-
65
- ### 1.2.2、主进程
62
+ ### 1.2.1、在主进程中使用
66
63
 
67
64
  需要在主进程加载 `@plasosdk/plaso-electron-sdk` 依赖包
68
65
 
@@ -84,35 +81,15 @@ const { initRemoteMain } = require('@plasosdk/plaso-electron-sdk');
84
81
  initRemoteMain(remoteMain);
85
82
  ```
86
83
 
87
- ### 1.2.3、渲染进程
88
-
89
- #### 1.2.3.1、打开 实时课堂
90
-
91
- (1)调用方法:**createLiveClassWindow**
92
-
93
- (2)入参参考: [2、实时课堂参数说明](#2、实时课堂入参说明)
94
-
95
- #### 1.2.3.2、打开备课课堂
84
+ ### 1.2.2、在渲染进程中使用
96
85
 
97
- (1)调用方法:**createPrepareClassWindow**
98
-
99
- (2)入参参考:[3、备课课堂参数说明](#3、备课课堂入参说明)
100
-
101
- #### 1.2.3.3、[确定日志的写入位置](#5.1、initLogConfig)
102
-
103
- ```ts
104
- // 代码示例
105
- const PlasoElectronSdk = window.require('@plasosdk/plaso-electron-sdk');
106
- const logFilePath = 'C:/Users/userName/Desktop/electronDemo/electron12.0.18_x32/resources/app';
107
- PlasoElectronSdk.initLogConfig(logFilePath);
108
- ```
109
-
110
- #### 1.2.3.4、[创建 课堂/备课 窗口](#5.3、createLiveClassWindow)
86
+ <a id="open-sdk-window-params"></a>
111
87
 
88
+ **打开实时课堂/备课课堂方法入参类型定义**
112
89
  ```ts
113
90
  interface CreateClassPamras {
114
91
  classOptions: Object;
115
- electronWinOptions?: Object;
92
+ electronWinOptions?: Electron.BrowserWindowConstructorOptions;
116
93
  onClassWindowReadyFn?: (winId: number) => void
117
94
  onClassWindowLeaveFn?: (winId: number) => void
118
95
  onClassFinishedFn?: (meetingId: string) => void;
@@ -126,17 +103,32 @@ interface CreateClassPamras {
126
103
  onOpenResourceCenterFn?: () => void;
127
104
  onGetExtFileNameFn?: (...args: any[]) => Promise<string>;
128
105
  }
106
+ ```
129
107
 
108
+ #### 1.2.3.1、打开实时课堂
109
+
110
+ ```ts
130
111
  // 代码示例
131
112
  const PlasoElectronSdk = window.require('@plasosdk/plaso-electron-sdk');
132
- const createClassParams: CreateClassPamras = { classOptions: { query } };
113
+ const createLiveClassParams: CreateClassPamras = { classOptions: { query } };
114
+ PlasoElectronSdk.createLiveClassWindow(createLiveClassParams);
115
+ ```
133
116
 
134
- //创建实时课堂
135
- PlasoElectronSdk.createLiveClassWindow(createClassParams);
136
- // or 创建备课课堂
117
+ 入参详见[实时课堂参数说明](#live-class-params)
118
+
119
+ #### 1.2.3.2、打开备课课堂
120
+
121
+ ```ts
122
+ // 代码示例
123
+ const PlasoElectronSdk = window.require('@plasosdk/plaso-electron-sdk');
124
+ const createPrepareClassParams: CreateClassPamras = { classOptions: { loginName: 'hello', userName: 'world' } };
137
125
  PlasoElectronSdk.createPrepareClassWindow(createClassParams);
138
126
  ```
139
127
 
128
+ 入参详见[备课课堂入参说明](#prepare-class-params)
129
+
130
+
131
+ <a id="live-class-params"></a>
140
132
  # 2、实时课堂入参说明
141
133
 
142
134
  ## 2.1、参数 classOptions
@@ -149,7 +141,7 @@ PlasoElectronSdk.createPrepareClassWindow(createClassParams);
149
141
 
150
142
  | 参数 | 是否必传 | 类型 | 默认值 | 说明 |
151
143
  | --- | --- | --- | --- | --- |
152
- | query | 是 | string | 无 | 进课堂必传字段,具体拼接逻辑见下文[query 属性说明](#211query-属性) |
144
+ | query | 是 | string | 无 | 进课堂必传字段,具体拼接逻辑见下文[query 属性说明](#query) |
153
145
  | displayAvatarUrl | 否 | string | 无 | 用户头像地址 |
154
146
  | classMembers | 否 | object[] | 无 | 1、课对应的班级用户信息<br />2、初始化课堂参与人<br /><br />3、最多支持 2000 人,需要支持更多学生需要联系伯索平台进行额外申请<br />{<br /><br />/** 唯一标识该用户的 id \*/<br />loginName: string,<br /><br />/** 用户显示的姓名 _/<br />name: string,<br />/\*\* 用户角色,"speaker","assistant","listener","superlistener" 之一 _/<br />upimeRole: string,<br />/** 用户的 id,和云学堂业务强相关,sdk 用户非必要 \*/<br />unique_id: number \| string<br />/** 用户头像图片的 url,非必要 \*/<br />displayAvatarUrl: string,<br />} |
155
147
  | enableENC | 否 | boolean | true | 是否启用降噪 |
@@ -163,6 +155,7 @@ PlasoElectronSdk.createPrepareClassWindow(createClassParams);
163
155
  | residentCamera | 否 | boolean | false | 常驻摄像头:只对学生或游客生效 |
164
156
  | | | | | |
165
157
 
158
+ <a id="query"></a>
166
159
  ### 2.1.1、query 属性
167
160
 
168
161
  **query 属性格式示例**:
@@ -213,7 +206,7 @@ interface IQueryParams {
213
206
  | 参数 | 类型 | 说明 |
214
207
  | --- | --- | --- |
215
208
  | appId | string | 在申请接入时,伯索平台给予的 appId |
216
- | signature | string | 签名字符串,根据queryParams中除去signature参数的其他参数生成,生成示例参考[根据queryParams对象生成签名字符串](#2112根据-queryParams-对象生成签名字符串) |
209
+ | signature | string | 签名字符串,根据queryParams中除去signature参数的其他参数生成,生成示例参考[根据queryParams对象生成签名字符串](#generate-signature) |
217
210
  | validBegin | number | 请求课堂**开始生效起始时间**的 Unix Epoch 时间戳,单位秒:(时间戳/1000 再取整) |
218
211
  | validTime | number | 请求的**签名在课堂的有效时间段**(断网重连后会重新校验签名),单位秒,建议: 24 _ 60 _ 60 s |
219
212
  | endTime | number | 请求课堂**结束时间**的 Unix Epoch 时间戳,单位秒:(时间戳/1000 再取整) |
@@ -248,11 +241,12 @@ interface IQueryParams {
248
241
  | d_sharpness | number | 10 | 无 | 头像推流清晰度、桌面共享清晰度<br />**仅 onlineMode 为 1 时生效**:<br />10:标清 20:高清 21: 高清流畅 30:超清 31: 超清流畅 |
249
242
  | isNewMT | number | 0 | 1 | 是否支持 移动授课模式;<br />建议传 1 |
250
243
  | d_enableDualCamera | number | 0 | 无 | 是否开启双摄,1:开启,0: 关闭 |
251
- | recordType | number | 无 | 无 | 配置 recordAvartor 设置录制对象,参数说明参考[附录 9-1](#91recordtype) |
244
+ | recordType | number | 无 | 无 | 配置 recordAvartor 设置录制对象,参数说明参考[附录 9.1](#record-type) |
252
245
  | recordAvator | string | '' | 无 | 传入老师/助教的`loginName`表示录制对应人的头像 |
253
246
  | recordScreen | string | '' | 无 | 传入'screen'表示录制屏幕(当前仅支持录制老师屏幕)|
254
247
  | | | | | |
255
248
 
249
+ <a id="generate-signature"></a>
256
250
  #### 2.1.1.2、根据 queryParams 对象生成签名字符串
257
251
 
258
252
  (1)**用户把 queryParams 作为参数传给自己的接口,接口返回值必须返回签名字符串:signature**
@@ -314,7 +308,7 @@ function genQuery(queryParams) {
314
308
  genQuery(queryParams);
315
309
  ```
316
310
 
317
-
311
+ <a id="prepare-class-params"></a>
318
312
  # 3、备课课堂入参说明
319
313
 
320
314
  ## 3.1、参数 classOptions
@@ -344,14 +338,16 @@ genQuery(queryParams);
344
338
 
345
339
  1、备课课堂直接通过任务栏关闭不会清空本地记录的板书内容,下次进入后会 板书交互会和上次进入的板书 配置一致(即使 d_enableObjectEraser 参数 值变动了)
346
340
 
347
- # 4、实时课堂&备课课堂 通用参数说明
341
+ # 4、打开实时课堂/备课课堂通用参数说明
348
342
 
349
- ## 4.1、参数 electronWinOptions
343
+ ## 4.1、参数 electronWinOptions
350
344
 
351
- electron 的窗口参数,详情参考 [electron 官方文档](https://www.electronjs.org/zh/docs/latest/api/browser-window#winwebcontents-%E5%8F%AA%E8%AF%BB)
345
+ > **即将弃用**: 不推荐传入,SDK内部默认设置了一些窗口参数,为了保证最佳体验,不要传入此参数。
346
+
347
+ Electron的窗口参数,详情参考 [Electron官方文档](https://www.electronjs.org/zh/docs/latest/api/browser-window#new-browserwindowoptions)。
352
348
 
353
349
  ```ts
354
- type electronWinOptions = object;
350
+ type electronWinOptions = Electron.BrowserWindowConstructiorOptions;
355
351
  ```
356
352
 
357
353
  ## 4.2、参数回调 onClassWindowReadyFn
@@ -423,20 +419,19 @@ type onOpenResourceCenterFn = () => void;
423
419
  type onGetExtFileNameFn = (...args: any[]) => Promise<string>;
424
420
  ```
425
421
 
426
- # 5、对外的交互方法
422
+ # 5、API参考
427
423
 
428
- ## 5.1、initLogConfig
424
+ ## 5.1、PlasoElectronSdk.initLogConfig
429
425
 
430
426
  **初始化课堂窗口日志位置**,窗口崩溃时会在同级目录下生成 reports 文件夹存储 dump,**在 调用 createLiveClassWindow 前设置**
431
427
 
432
428
  **日志默认位置**:
433
429
 
434
- ```
435
- windows:C:\Users\${userName}\AppData\Roaming\\${appName}\P403FileTemp
436
- ```
430
+ ```js
431
+ require('path').join(require('electron').app.getPath('userData'), 'P403FileTemp');
437
432
 
438
- ```ts
439
- path.join(remote.app.getPath('userData'), '/P403FileTemp/');
433
+ // Windows:C:\Users\${userName}\AppData\Roaming\${appName}\P403FileTemp
434
+ // Mac:/Users/${userName}/Application\ Support/${appName}/P403FileTemp
440
435
  ```
441
436
 
442
437
  参数示例:
@@ -448,7 +443,7 @@ const logFilePath = 'C:/Users/userName/Desktop/electronDemo/electron12.0.18_x32/
448
443
  PlasoElectronSdk.initLogConfig(logFilePath);
449
444
  ```
450
445
 
451
- ## 5.2、getVersion
446
+ ## 5.2、PlasoElectronSdk.getVersion
452
447
 
453
448
  返回包的版本,格式:x.x.x
454
449
 
@@ -456,87 +451,26 @@ PlasoElectronSdk.initLogConfig(logFilePath);
456
451
  type getVersion = () => string;
457
452
  ```
458
453
 
459
- ## 5.3、createLiveClassWindow
454
+ ## 5.3、PlasoElectronSdk.createLiveClassWindow
460
455
 
461
- **创建实时课堂窗口**,入参参考 见 “[**2、实时课堂入参说明**](#2、实时课堂入参说明)”
456
+ **创建实时课堂窗口**
462
457
 
463
458
  ```ts
464
- /**
465
- * @typedef {Object} classOptionsType
466
- * @property {boolean} [debug] - 是否开启课堂窗口debug模式
467
- * @property {string} query - 进课堂的必备query
468
- * @property {string} [version] - 格式参考:1.53.901
469
- */
470
-
471
- /**
472
- * @typedef {Object} FileParams
473
- * @property {string[]} filePath - 备课文件本地地址
474
- * @property {'png' | 'pb' | string} fileType
475
- */
476
-
477
- /**
478
- * @typedef {Object} classWindowType
479
- * @property {classOptionsType} classOptions 进课堂参数对象
480
- * @property {Object} [electronWinOptions] 自定义electron的窗口参数
481
- * @property {(winId: number)=>void} [onClassWindowReadyFn] 课堂窗口打开渲染成功后的回调
482
- * @property {(winId: number)=>void} [onClassWindowLeaveFn] 课堂窗口关闭后的回调
483
- * @property {(meetingId: string)=>void} [onClassFinishedFn] 课堂结束后的回调
484
- * @property {(
485
- * params: {
486
- * fileInfo: FileParams[],
487
- * fileName?: string
488
- * },
489
- * callback: (result: boolean) => void
490
- * ) => void} [onSaveBoardFn] 保存板书,具体的保存逻辑由外部实现,取消保存板书时,callback传false, 不然传true
491
- * @property {()=>void} [onOpenResourceCenterFn] 通知外部用户打开自己的资料中心,资料中心的具体ui和逻辑由外部用户自己实现
492
- *
493
- */
494
-
495
- /**
496
- * @param {classWindowType} classWindowProps
497
- * @returns
498
- */
499
- function createClassWindow(classWindowProps) {/**
500
- * @typedef {Object} classOptionsType
501
- * @property {boolean} [debug] - 是否开启课堂窗口debug模式
502
- * @property {string} query - 进课堂的必备query,其中部分参数需要签名
503
- */
504
-
505
- /**
506
- * @typedef {Object} liveClassWindowType
507
- * @property {classOptionsType} classOptions 进课堂参数对象
508
- * @property {Object} [electronWinOptions] 自定义electron的窗口参数
509
- * @property {(winId: number)=>void} [onClassWindowReadyCb] 课堂窗口打开渲染成功后的回调
510
- * @property {()=>void} [onClassWindowLeaveCb] 课堂窗口关闭后的回调
511
- * @property {()=>void} [onClassFinishedCb] 课堂结束后的回调
512
- */
513
-
514
- /**
515
- * @param {liveClassWindowType} liveClassWindowProps
516
- * @returns
517
- */
518
- function createLiveClassWindow({
519
- classOptions,
520
- electronWinOptions,
521
- onClassWindowReadyCb,
522
- onClassWindowLeaveCb,
523
- onClassFinishedCb,
524
- }){
525
- ......
526
- }
459
+ function createLiveClassWindow(params: CreateClassPamras): void;
527
460
  ```
461
+ 参数详见[打开实时课堂/备课课堂方法入参类型定义](#open-sdk-window-params)
528
462
 
529
- ## 5.4、createPrepareClassWindow
463
+ ## 5.4、PlasoElectronSdk.createPrepareClassWindow
530
464
 
531
- **创建备课课堂窗口**,入参参考 见 “[**3、备课课堂入参说明**](#3、备课课堂入参说明)”
532
-
533
- ```
534
- 参数详情 参考 createLiveClassWindow方法的说明
465
+ **创建备课课堂窗口**
466
+ ```ts
467
+ function createLiveClassWindow(params: CreateClassPamras): void;
535
468
  ```
469
+ 参数详见[打开实时课堂/备课课堂方法入参类型定义](#open-sdk-window-params)
536
470
 
537
- ## 5.5、insertObject
471
+ ## 5.5、PlasoElectronSdk.insertObject
538
472
 
539
- 用户从自己的云盘 **往 实时课堂/备课课堂 插入文件**
473
+ 用户从自己的资料中心往**实时课堂/备课课堂**插入文件
540
474
 
541
475
  ```ts
542
476
  // 插入的文件类型暴露在PlasoElectronSdk上,PlasoElectronSdk.FILE_TYPE
@@ -703,6 +637,7 @@ try {
703
637
 
704
638
  # 9、附录参数说明
705
639
 
640
+ <a id="record-type"></a>
706
641
  ## 9.1、RecordType
707
642
 
708
643
  | 值 | 说明 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasosdk/plaso-electron-sdk",
3
- "version": "1.3.2",
3
+ "version": "1.3.3",
4
4
  "description": "伯索课堂Electron SDK",
5
5
  "main": "index.js",
6
6
  "scripts": {