为了方便开发,抽象了平台的流程,只需要专注于功能的实现
开始
创建新的平台应该遵循现有规则,在mooc文件夹下创建以平台为命名规则的文件夹
且有文件mooc/[platform]/platform.ts,实现MoocFactory接口的类,用于通过页面信息来创建对应的具体Mooc对象,如果不符合规则返回null,对应构建实例(mooc/[platform]/platform.ts)生命周期
需要在/build/cxmooc-tools/manifest.json文件和/src/config.ts中添加对应的URL规则
如果你需要开发油猴脚本,那么你需要在/src/tampermonkey目录中添加对应的油猴文件,且在webpack.tampermonkey.js和internal/pack-crx.ts:43中添加对应配置,具体请参考现有平台
实现Mooc接口
具体请看已有平台
接口定义
// 事件
export type MoocEvent = "complete" | "reload" | "error" | "taskComplete";
// 单个Mooc任务,可能会被抛弃
export interface Mooc {
Init(): any
}
// Mooc任务集,未来更倾向于使用此接口
export interface MoocTaskSet extends Mooc, IEventListener<MoocEvent> {
// 初始化
Init(): Promise<any>
// 停止
Stop(): Promise<any>
// 返回下一个任务点
Next(): Promise<Task>
// 设置任务点位置
SetTaskPointer(index: number): void;
}