@plasosdk/plaso-electron-sdk 1.3.2 → 1.3.4
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.
- package/CHANGELOG.md +3 -0
- package/README.md +148 -180
- package/js/render.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
ADDED
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
|
|
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.
|
|
88
|
-
|
|
89
|
-
#### 1.2.3.1、打开 实时课堂
|
|
90
|
-
|
|
91
|
-
(1)调用方法:**createLiveClassWindow**
|
|
92
|
-
|
|
93
|
-
(2)入参参考: [2、实时课堂参数说明](#2、实时课堂入参说明)
|
|
84
|
+
### 1.2.2、在渲染进程中使用
|
|
94
85
|
|
|
95
|
-
|
|
96
|
-
|
|
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?:
|
|
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
|
+
```
|
|
107
|
+
|
|
108
|
+
#### 1.2.3.1、打开实时课堂
|
|
129
109
|
|
|
110
|
+
```ts
|
|
130
111
|
// 代码示例
|
|
131
112
|
const PlasoElectronSdk = window.require('@plasosdk/plaso-electron-sdk');
|
|
132
|
-
const
|
|
113
|
+
const createLiveClassParams: CreateClassPamras = { classOptions: { query } };
|
|
114
|
+
PlasoElectronSdk.createLiveClassWindow(createLiveClassParams);
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
入参详见[实时课堂参数说明](#live-class-params)
|
|
133
118
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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 属性说明](#
|
|
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对象生成签名字符串](#
|
|
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
|
|
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、打开实时课堂/备课课堂通用参数说明
|
|
342
|
+
|
|
343
|
+
## 4.1、参数 electronWinOptions
|
|
348
344
|
|
|
349
|
-
|
|
345
|
+
> **即将弃用**: 不推荐传入,SDK内部默认设置了一些窗口参数,为了保证最佳体验,不要传入此参数。
|
|
350
346
|
|
|
351
|
-
|
|
347
|
+
Electron的窗口参数,详情参考 [Electron官方文档](https://www.electronjs.org/zh/docs/latest/api/browser-window#new-browserwindowoptions)。
|
|
352
348
|
|
|
353
349
|
```ts
|
|
354
|
-
type electronWinOptions =
|
|
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
|
-
|
|
436
|
-
```
|
|
430
|
+
```js
|
|
431
|
+
require('path').join(require('electron').app.getPath('userData'), 'P403FileTemp');
|
|
437
432
|
|
|
438
|
-
|
|
439
|
-
|
|
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,28 @@ PlasoElectronSdk.initLogConfig(logFilePath);
|
|
|
456
451
|
type getVersion = () => string;
|
|
457
452
|
```
|
|
458
453
|
|
|
459
|
-
## 5.3、createLiveClassWindow
|
|
454
|
+
## 5.3、PlasoElectronSdk.createLiveClassWindow
|
|
460
455
|
|
|
461
|
-
|
|
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
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
参数详情 参考 createLiveClassWindow方法的说明
|
|
465
|
+
**创建备课课堂窗口**
|
|
466
|
+
```ts
|
|
467
|
+
function createLiveClassWindow(params: CreateClassPamras): void;
|
|
535
468
|
```
|
|
469
|
+
参数详见[打开实时课堂/备课课堂方法入参类型定义](#open-sdk-window-params)
|
|
536
470
|
|
|
537
|
-
|
|
471
|
+
<a id="insert-object"></a>
|
|
538
472
|
|
|
539
|
-
|
|
473
|
+
## 5.5、PlasoElectronSdk.insertObject
|
|
474
|
+
|
|
475
|
+
用户从自己的资料中心往**实时课堂/备课课堂**插入文件
|
|
540
476
|
|
|
541
477
|
```ts
|
|
542
478
|
// 插入的文件类型暴露在PlasoElectronSdk上,PlasoElectronSdk.FILE_TYPE
|
|
@@ -560,17 +496,34 @@ const enum FILE_TYPE {
|
|
|
560
496
|
};
|
|
561
497
|
```
|
|
562
498
|
|
|
563
|
-
```
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
499
|
+
```typescript
|
|
500
|
+
// 插入外部云盘里的文件,文件需要遵循特定的数据结构,其中`url`和`info`至少传一个
|
|
501
|
+
|
|
502
|
+
interface IFileData {
|
|
503
|
+
/** 文件类型,使用SDK暴露的枚举 */
|
|
504
|
+
type: PlasoElectronSdk.FILE_TYPE;
|
|
505
|
+
|
|
506
|
+
/** 文件名称,传入后会显示在文件窗口标题栏上,建议带上文件后缀名。默认名字为文件类型 */
|
|
507
|
+
title?: string;
|
|
508
|
+
|
|
509
|
+
/** 访问权限为公开的全地址,建议使用https协议的全地址,传入`info`时会忽略该属性 */
|
|
510
|
+
url?: string;
|
|
511
|
+
|
|
512
|
+
/**
|
|
513
|
+
* 当用户插入的文件有签名时效时需要以info属性插入文件,这种方式需要配合onGetExtFileNameFn回调使用。
|
|
514
|
+
* `info`的值由SDK用户自行决定,SDK内部会把`info`作为onGetExtFileNameFn回调函数的参数传入,由SDK用户
|
|
515
|
+
* 根据`info`计算文件全地址。
|
|
516
|
+
*
|
|
517
|
+
* 为了避免文件签名失效,SDK内部会通过onGetExtFileNameFn回调向外部获取SDK用户计算好的文件全地址。
|
|
518
|
+
* 当使用这种方式插入云盘文件时会忽略`url`属性。
|
|
519
|
+
*
|
|
520
|
+
* 特别注意:`info`属性默认不支持PPT类型,PPT/WORD/EXCEL/DOC/XLS类型依然通过`url`属性插入。
|
|
521
|
+
*/
|
|
522
|
+
info?: any[];
|
|
523
|
+
}
|
|
524
|
+
|
|
572
525
|
/**
|
|
573
|
-
* @param {
|
|
526
|
+
* @param {IFileData} fileData 文件数据
|
|
574
527
|
*/
|
|
575
528
|
type insertObject = (fileData) => void;
|
|
576
529
|
|
|
@@ -584,8 +537,9 @@ PlasoElectronSdk.insertObject(fileData);
|
|
|
584
537
|
1、 插入 备课文件 的格式如下,其中 fileLocationPath 为 插入的备课文件资源的地址前缀,比如要本地插入一个备课文件(info.pb),其完整地址为 C:\Users\xxx\AppData\Roaming\plaso_sdk\prepareLessonsTemp\draft.swap\info.pb,则此时 fileLocationPath = C:\Users\xxx\AppData\Roaming\plaso_sdk\prepareLessonsTemp\draft.swap
|
|
585
538
|
|
|
586
539
|
```ts
|
|
587
|
-
//
|
|
588
|
-
|
|
540
|
+
// 备课仅支持info插入,其中info属性格式固定,不能更改
|
|
541
|
+
|
|
542
|
+
const fileDataWithInfo = {
|
|
589
543
|
type: PlasoElectronSdk.FILE_TYPE.PREPARE_LESSONS,
|
|
590
544
|
info: ['pb', , , fileLocationPath],
|
|
591
545
|
};
|
|
@@ -597,67 +551,80 @@ const fileData = {
|
|
|
597
551
|
|
|
598
552
|
### 5.5.2、插入图片
|
|
599
553
|
|
|
600
|
-
1、**title 需要带有文件后缀名**
|
|
601
|
-
|
|
602
554
|
```ts
|
|
603
|
-
//
|
|
604
|
-
|
|
555
|
+
// 图片可以通过url或info插入,当插入gif时,title需要带上.gif后缀
|
|
556
|
+
|
|
557
|
+
const fileDataWithUrl = {
|
|
558
|
+
type: PlasoElectronSdk.FILE_TYPE.IMAGE,
|
|
559
|
+
title: 'xxx',
|
|
560
|
+
url: 'xxx',
|
|
561
|
+
};
|
|
562
|
+
|
|
563
|
+
const fileDataWithInfo = {
|
|
605
564
|
type: PlasoElectronSdk.FILE_TYPE.IMAGE,
|
|
606
|
-
title: '
|
|
607
|
-
|
|
565
|
+
title: 'xxx',
|
|
566
|
+
info: ['xxx', ...],
|
|
608
567
|
};
|
|
609
568
|
```
|
|
610
569
|
|
|
611
|
-
### 5.5.3、插入
|
|
570
|
+
### 5.5.3、插入PPT
|
|
612
571
|
|
|
613
572
|
```ts
|
|
614
|
-
//
|
|
615
|
-
|
|
573
|
+
// PPT仅支持url插入
|
|
574
|
+
|
|
575
|
+
const fileDataWithUrl = {
|
|
616
576
|
type: PlasoElectronSdk.FILE_TYPE.PPT,
|
|
617
|
-
title: '
|
|
618
|
-
url: '
|
|
577
|
+
title: 'xxx',
|
|
578
|
+
url: 'xxx',
|
|
619
579
|
};
|
|
620
580
|
```
|
|
621
581
|
|
|
622
|
-
### 5.5.4
|
|
623
|
-
|
|
624
|
-
1、可以设置**url**属性为 公开可访问的音视频文件全路径,
|
|
625
|
-
|
|
626
|
-
2、或者设置**info**属性为表示文件信息的数组,可以通过 进课堂时传入的 **getExtFileName** 方法 可以获取文件有效路径
|
|
582
|
+
### 5.5.4、插入音视频
|
|
627
583
|
|
|
628
584
|
```ts
|
|
629
|
-
//
|
|
630
|
-
|
|
585
|
+
// 音视频可以通过url或info插入
|
|
586
|
+
|
|
587
|
+
const fileDataWithUrl = {
|
|
631
588
|
type: PlasoElectronSdk.FILE_TYPE.AUDIO/.VIDEO,
|
|
632
|
-
title: '
|
|
633
|
-
url: '
|
|
589
|
+
title: 'xxx',
|
|
590
|
+
url: 'xxx',
|
|
634
591
|
}
|
|
635
|
-
|
|
636
|
-
|
|
592
|
+
|
|
593
|
+
|
|
594
|
+
const fileDataWithInfo = {
|
|
637
595
|
type: PlasoElectronSdk.FILE_TYPE.AUDIO/.VIDEO,
|
|
638
|
-
title: '
|
|
639
|
-
info: [
|
|
596
|
+
title: 'xxx',
|
|
597
|
+
info: ['xxx', ...],
|
|
640
598
|
}
|
|
641
599
|
```
|
|
642
600
|
|
|
643
|
-
### 5.5.5、插入
|
|
601
|
+
### 5.5.5、插入PDF
|
|
602
|
+
```ts
|
|
603
|
+
// PDF可以通过url或info插入
|
|
604
|
+
|
|
605
|
+
const fileDataWithUrl = {
|
|
606
|
+
type: PlasoElectronSdk.FILE_TYPE.PDF,
|
|
607
|
+
title: 'xxx',
|
|
608
|
+
url: 'xxx',
|
|
609
|
+
}
|
|
610
|
+
|
|
611
|
+
const fileDataWithInfo = {
|
|
612
|
+
type: PlasoElectronSdk.FILE_TYPE.PDF,
|
|
613
|
+
title: 'xxx',
|
|
614
|
+
info: ['xxx', ...],
|
|
615
|
+
}
|
|
616
|
+
```
|
|
644
617
|
|
|
645
|
-
1、可以设置 **url**属性 为公开可访问的 pdf、word、execl 文件全路径,
|
|
646
618
|
|
|
647
|
-
|
|
619
|
+
### 5.5.6、插入WORD/EXCEL/DOC/XLS
|
|
648
620
|
|
|
649
621
|
```ts
|
|
650
|
-
//
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
或
|
|
657
|
-
const fileData = {
|
|
658
|
-
type: PlasoElectronSdk.FILE_TYPE.PDF/.WORD/.EXCEL/.DOC/.XLS,
|
|
659
|
-
title: 'xxxxxx',
|
|
660
|
-
info: [xxxxxx],
|
|
622
|
+
// WORD/EXCEL/DOC/XLS仅支持url插入
|
|
623
|
+
|
|
624
|
+
const fileDataWithUrl = {
|
|
625
|
+
type: PlasoElectronSdk.FILE_TYPE/.WORD/.EXCEL/.DOC/.XLS,
|
|
626
|
+
title: 'xxx',
|
|
627
|
+
url: 'xxx',
|
|
661
628
|
}
|
|
662
629
|
```
|
|
663
630
|
|
|
@@ -667,15 +634,15 @@ step1、进课堂时,对象 **classOptions.supportShowResourceCenter** 需要
|
|
|
667
634
|
|
|
668
635
|
step2、在课堂内点击资料中心后,会触发进课堂时传入的回调函数 **onOpenResourceCenterFn**,此时用户在 onOpenResourceCenterFn 函数内打开自己的云盘
|
|
669
636
|
|
|
670
|
-
step3
|
|
637
|
+
step3、选择文件后,通过 **PlasoElectronSdk.insertObject** 方法插入文件,方法入参参考 [insertObject](#insert-object) 说明
|
|
671
638
|
|
|
672
|
-
step4、insertObject 方法 入参 有 info 时,此时 会触发进课堂时传入的回调函数 **onGetExtFileNameFn**
|
|
639
|
+
step4、insertObject 方法 入参 有 info 时,此时 会触发进课堂时传入的回调函数 **onGetExtFileNameFn** 来获取文件的全地址
|
|
673
640
|
|
|
674
|
-
# 7
|
|
641
|
+
# 7、播放历史课堂
|
|
675
642
|
|
|
676
|
-
1、参考文档: [
|
|
643
|
+
1、参考文档: **[播放器SDK-Web播放器](https://open.plaso.cn/doc-6285192)**
|
|
677
644
|
|
|
678
|
-
2
|
|
645
|
+
2、当课堂中insertObject使用了`info`属性时,SDK内部需要外部传入`getExtFileName`,因此历史课堂需要使用jssdk的接入方式, 详见:**[Web播放器-jssdk接入](https://open.plaso.cn/doc-6285192#jssdk%E6%8E%A5%E5%85%A5)**
|
|
679
646
|
|
|
680
647
|
# 8、注意点
|
|
681
648
|
|
|
@@ -685,10 +652,10 @@ step4、insertObject 方法 入参 有 info 时,此时 会触发进课堂时
|
|
|
685
652
|
|
|
686
653
|
```ts
|
|
687
654
|
try {
|
|
688
|
-
const
|
|
689
|
-
|
|
690
|
-
// mainWindow
|
|
691
|
-
|
|
655
|
+
const electronRemote = require('@electron/remote/main');
|
|
656
|
+
electronRemote.initialize();
|
|
657
|
+
// mainWindow为app启动的渲染进程窗口
|
|
658
|
+
electronRemote.enable(mainWindow.webContents);
|
|
692
659
|
} catch (error) {
|
|
693
660
|
console.error(
|
|
694
661
|
'Module not found',
|
|
@@ -703,6 +670,7 @@ try {
|
|
|
703
670
|
|
|
704
671
|
# 9、附录参数说明
|
|
705
672
|
|
|
673
|
+
<a id="record-type"></a>
|
|
706
674
|
## 9.1、RecordType
|
|
707
675
|
|
|
708
676
|
| 值 | 说明 |
|
package/js/render.js
CHANGED
|
@@ -352,9 +352,9 @@ function createPrepareClassWindow(prepareClassWindowProps) {
|
|
|
352
352
|
/**
|
|
353
353
|
* @typedef {Object} fileDataObj
|
|
354
354
|
* @property {number} type 插入文件的格式,内容参考 FILE_TYPE
|
|
355
|
+
* @property {string} [title] 文件名称,传入后会显示在文件窗口标题栏上,建议带上文件后缀名
|
|
356
|
+
* @property {string} [url] 公开的访问权限的文件全地址,建议https协议全地址
|
|
355
357
|
* @property {any[]} [info] 具体的文件信息,除备课外,内容都由用户自己定义
|
|
356
|
-
* @property {string} [title] 文件名称,需要带后缀
|
|
357
|
-
* @property {string} [url] 文件的可下载地址
|
|
358
358
|
*/
|
|
359
359
|
/**
|
|
360
360
|
* @param {fileDataObj} fileData 文件数据
|