Skip to content

Latest commit

 

History

History
22 lines (12 loc) · 1.44 KB

File metadata and controls

22 lines (12 loc) · 1.44 KB

此示例用到了模块级别的生命周期文件 lifeCycle.js,需要自己创建。

首先会执行 createFloder 这个函数,会创建c://innerServiceTutorial/movie的结构,如要代码共用则可在 external 加属性

读取列表

为了支持用户可以将电脑上的视频直接放到c://innerServiceTutorial/movie里,则用到了dealCommand钩子,并对getVideolist这个动作特殊处理,然后才会调用 getVideolist.js

上传

用户上传的文件会被放在c://innerServiceTutorial/movie,那么程序如何与默认的上传行为区分呢? 这就用到getUploadPath钩子,而 upload.js 只需要把数据记录到 video.json 就可以了,注意上传的文件不会带有后缀。

播放

video 元素播放的链接类似于http://127.0.0.1:8091/api/video/upload_52a2d65e524ce0b429cbc1443c95cc5f.mp4 ,服务器需要对这种连接做处理,则用到了dealCommand钩子, 边下边播准确的说是不用把视频完全下载再播放,这个功能是内置的,但需要返回资源的完整路径。

下载和删除

为了和正常的删除行为区分.delete.js 执行的返回结果会传给getDeleteFilePath钩子的result形参,只需返回完整的路径就好

诚然,上述几个钩子是因为 sf-mobile-web 才有的,当时内嵌服务器的代码是复制黏贴应用在 sf-notes 上的版本,因为其不够稳定,一处更改要改两个地方,随后才独立成为 sf-inner-service 这个项目。