@netless/slide 0.3.10 → 0.4.2
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/README.md +68 -0
- package/lib/Slide.d.ts +13 -1
- package/lib/Slide.js +33 -25
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -358,6 +358,63 @@ clearSlideCache(): void;
|
|
|
358
358
|
static clearLocalCache(): void;
|
|
359
359
|
```
|
|
360
360
|
|
|
361
|
+
### 资源代理
|
|
362
|
+
|
|
363
|
+
**注意: `@netless/slide@0.4.0` 版本才开始支持。**
|
|
364
|
+
|
|
365
|
+
从 `@netless/slide@0.4.0` 开始, 你可以在创建 Slide 对象时提供一个 loaderDelegate 对象, 从而代理 Slide 内部所有远程资源, 进而可以实现
|
|
366
|
+
资源重定向, 资源鉴权等需求.
|
|
367
|
+
|
|
368
|
+
loaderDelegate 属性需符合 `ILoaderDelegate` 接口, 需要注意对于媒体资源, 并不能直接返回资源内容, 只能同步的返回重定向后的资源地址.
|
|
369
|
+
|
|
370
|
+
```typescript
|
|
371
|
+
export interface ILoaderDelegate {
|
|
372
|
+
/**
|
|
373
|
+
* 加载 json 资源, 需返回 json 文本
|
|
374
|
+
* @param url 原始资源地址
|
|
375
|
+
*/
|
|
376
|
+
loadJson(url: string): Promise<string>;
|
|
377
|
+
/**
|
|
378
|
+
* 加载图片资源, 需返回 Blob 对象
|
|
379
|
+
* @param url 原始资源地址
|
|
380
|
+
*/
|
|
381
|
+
loadImage(url: string): Promise<Blob>;
|
|
382
|
+
/**
|
|
383
|
+
* 媒体文件重定向, mp3 和 mp4 资源会调用这个代理函数, 需返回重定向后的 url
|
|
384
|
+
* @param url 原始资源地址
|
|
385
|
+
*/
|
|
386
|
+
redirectMedia(url: string): string;
|
|
387
|
+
}
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
一个什么也不干的 loaderDelegate 如下所示, 但是你可以对传入的 url 进行加工:
|
|
391
|
+
|
|
392
|
+
```typescript
|
|
393
|
+
import { Slide, ILoaderDelegate } from "@netless/slide"
|
|
394
|
+
|
|
395
|
+
const delegate: ILoaderDelegate = {
|
|
396
|
+
loadJson(url: string): Promise<string> {
|
|
397
|
+
return fetch(url).then(res => {
|
|
398
|
+
return res.text();
|
|
399
|
+
});
|
|
400
|
+
},
|
|
401
|
+
loadImage(url: string): Promise<Blob> {
|
|
402
|
+
return fetch(url).then(res => {
|
|
403
|
+
return res.blob();
|
|
404
|
+
});
|
|
405
|
+
},
|
|
406
|
+
redirectMedia(url: string): string {
|
|
407
|
+
return url;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
const slide = new Slide({
|
|
412
|
+
/// ... 其他初始化配置
|
|
413
|
+
loaderDelegate: delegate,
|
|
414
|
+
})
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
|
|
361
418
|
## [示例及具体文档参考](https://github.com/netless-io/netless-slide-demo)
|
|
362
419
|
|
|
363
420
|
## changelog
|
|
@@ -503,3 +560,14 @@ static clearLocalCache(): void;
|
|
|
503
560
|
#### 0.3.10
|
|
504
561
|
* 新增本地日志下载功能
|
|
505
562
|
* 修复加载状态不一致导致无法下一步的问题
|
|
563
|
+
|
|
564
|
+
#### 0.4.0
|
|
565
|
+
* 新增资源代理功能
|
|
566
|
+
|
|
567
|
+
#### 0.4.1
|
|
568
|
+
* 新增导航代理功能
|
|
569
|
+
|
|
570
|
+
#### 0.4.2
|
|
571
|
+
* 修复事件穿透问题
|
|
572
|
+
* 修复音频重复播放问题
|
|
573
|
+
* 修复翻页后触发器动画被重置的问题
|
package/lib/Slide.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { SlideError } from "@netless/ppt-player";
|
|
1
|
+
import { SlideError, ILoaderDelegate } from "@netless/ppt-player";
|
|
2
2
|
export { ErrorType } from "@netless/ppt-player";
|
|
3
|
+
export type { ILoaderDelegate } from "@netless/ppt-player";
|
|
3
4
|
export interface RtcAudio {
|
|
4
5
|
/**
|
|
5
6
|
* 开始播放音频.
|
|
@@ -114,6 +115,9 @@ export interface ISlideRenderOptions {
|
|
|
114
115
|
/** 播放切页动画时候的背景颜色, 接受 css 颜色字符串或者 16进制颜色值("#ffffff",0xffffff) */
|
|
115
116
|
transactionBgColor?: string | number;
|
|
116
117
|
}
|
|
118
|
+
export interface INavigatorDelegate {
|
|
119
|
+
gotoPage(index: number): void;
|
|
120
|
+
}
|
|
117
121
|
export interface ISlideConfig {
|
|
118
122
|
/** canvas 挂载点 */
|
|
119
123
|
anchor: HTMLDivElement;
|
|
@@ -158,6 +162,14 @@ export interface ISlideConfig {
|
|
|
158
162
|
* 资源加载超时时间, 默认 15 秒
|
|
159
163
|
*/
|
|
160
164
|
resourceTimeout?: number;
|
|
165
|
+
/**
|
|
166
|
+
* 远程资源代理, 详细使用参考 README
|
|
167
|
+
*/
|
|
168
|
+
loaderDelegate?: ILoaderDelegate;
|
|
169
|
+
/**
|
|
170
|
+
* ppt 页码导航代理, 添加此属性后, ppt 内部动作引起的页码变换, 全部走代理逻辑.
|
|
171
|
+
*/
|
|
172
|
+
navigatorDelegate?: INavigatorDelegate;
|
|
161
173
|
}
|
|
162
174
|
interface MediaState {
|
|
163
175
|
type: "pause" | "play";
|