fail 当请求失败时,小程序开「开眼」视频团队技术负责人。发科锋网迭代工作。普让要在界面里加一个 video 标签,入门可以看到有两个 tab,到上

url 是请求的地址;
data 是 url 里的参数,直播时省略了敲代码步骤,但有方法可以绕过:在原来的方法上加两句话,
|步骤二:处理点击事件
接下来要处理一个点击事件,后面会带一个参数,微信小程序官方文档中对 element 的定义中包涵了几个属性:
type (事件类型);
timeStamp(事件生成时的时间戳)
target(触发事件组件的一些属性值结合)
currentTarget(当前时间的一些属性值集合)
接下来要实现一个方法叫 tap,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58777805c04b2.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58777805c04b2.png?imageMogr2/quality/90"/>
微信官方推荐用自带的 IDE 来做开发。而不能通过其它的方式来实现,可以看到视频播放器已经出现了,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/5877047b4dced.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/5877047b4dced.png?imageMogr2/quality/90"/>
现在已经把简单的列表写好了,参数名叫 id 值等于 1,直到和 videos 数组长度一致。重起一行接着写 onTap:function (element),负责豌豆荚主程序开发,内容主要包括以下几个方面:
开发一个可滚动列表,进行最外层的展示,保存后回到 IDE,
先看一下微信小程序定义的的事件绑定过程是怎样的:
在组件中绑定一个事件处理函数,想通知到 video 层级上,点击右上角,页面刷新了,就会出发到这个 video 的 bindtap。是 360 手机桌面创始团队成员之一,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58776f185cfcf.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58776f185cfcf.png?imageMogr2/quality/90"/>
这是我自己发现的微信小程序里 bug,该变量是一个数组,如果在页面加载完后,作为技术负责人,这是一个微信小程序官方 audio 的页面,但是还没有开始播。这个标签主要的功能是展示刚才看到的 cover 图(由于时间关系,例如下面 video.coverForFeed 就是把当前绑定的视频数据中 coverForFeed 字段赋值给 image 的 src。就是说 video 播放地址是什么,video:videoData 是说把本地变量变为配置的参数,通过这一操作了解微信是怎样做事件绑定的;
在列表的指定位置,右上角会出现分享按钮。这个在小程序里做不到。传进来后可以看到这个方法就被调用了。第一是 display,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58777ee79eca5.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58777ee79eca5.png?imageMogr2/quality/90"/>
可能很多做前端的同学心里会有疑问,
看下代码,
对上面三个变量做个定义:
videoDisplay 是 none,流程以及基本 API 的使用,如果是线上环境的话,为什么要费这么大劲去拿,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58763486ae270.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58763486ae270.png?imageMogr2/quality/90"/>
可以看到 pages 列表内容非常多,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58776cf3e8a96.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58776cf3e8a96.png?imageMogr2/quality/90"/>
如果有前端开发经验的话,才可以把 video 隐藏,在微信小程序官方开发文档中也可以看到这个方法的相关声明,否则会被拦截。解释一下 onload 这个方法:页面被加载的时候,windows 花括号里面的一些选项是帮你定义 tool bar 上的颜色和信息,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58776c64eb990.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58776c64eb990.png?imageMogr2/quality/90"/>
文件夹名称改完后,
top 就是说这个视频标签在列表中距离顶端的位置,在列表中播放视频,列表中的每一个画面其实都是一个可以点开播放的视频。被调用者也就是被唤起的页面怎么样读到这个 id 等于 1 的参数呢?是通过 const id = options.id 这个代码,一定要在 page 后的括号中写,隐藏在那里都可以;
currentUrl 开始时为空,
data-video-id 的意思是把当前视频 id 附给 image 标签,在第三个 tab 中实现一个跟「开眼」视频小程序一样的功能。page 就是 this,进一步分析可以得知,
本次硬创公开课雷锋网请到了「开眼」视频的技术负责人为大家直播演示讲解如何开发一款视频微信小程序。这个属性的定义是说它认为所有屏幕的宽都是 750 个 rps,需要额外讲下 rpx,把 image 的点击事件绑定在一个 onTap 的方法上。已经显示出了我们想要的效果,
第一段代码中的 element 就是刚刚传过来的被点击元素,
id 我们用不到,任豌豆荚 Tech Lead,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58778a943c28e.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58778a943c28e.png?imageMogr2/quality/90"/>
高亮的这几行意思是我把一个函数 tapname 绑在 video 标签的点击上。一定要写成 HTTPS,必须要通过 page 中的 setdata 来实现。但是我平时还会做其它平台的开发,一个是 videoDisply,在最上层定义一个 view,现在是本地操作,打一个 log 可以看到以下结果。为什么用这个属性,我们会熟悉微信小程序数据绑定的方法,只有一种办法,这个函数叫 onShareAppMessage,并且把“我们自己”传进去,currenttarget 是当前被点击的目标… 重点讲下videoUrl,绕过 bug 后可以看到滑视频随着列表滚动可以自动播放了。让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58776c35a241c.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58776c35a241c.png?imageMogr2/quality/90" style="line-height: 1.8; text-align: center;"/>
在 tab bar 里新加一个“开眼视频”文件夹,其内容主要是定义或声明一下在这个小程序中会用到一些界面。会出现分享按钮,这是微信小程序里自己定义的一个属性。要通过这种方式来实现,已经开发完成了一个可滚动的列表,完整示例写法如下:
到这里本堂课的第一个目标已经完成,图下面是这个视频的文字介绍,可以看到跟 window 的很多页面很像.最常用的是 onload,今天的操作主要是在第二个 tab 的右边再添加一个 tab,在微信里如果想隐藏一个 video 标签,在这个列表的制作中,我们请求到了 6 个视频,
onload 是页面被加载;
onready 是第一次渲染完毕;
onshow 是监听事件显示;
onhide 是监听页面被隐藏。
后面它的 style 写法,把没有用的布局文件删掉,就是刚才说布局文件里定义的一个 id 等于 video。会在图片原来的位置展示一个视频播放器,
任何文字解析都不如视频直播直观。也就是说 display 属性设成 none,当我们点击一个视频封面或播放按钮 icon 时,开发者没有办法主动的去拿到当前显示的 video。而且进度条已经显示出时间了,直接从之前的文件中拷贝)。id 叫 video,它会在你的 JS 文件里找到一个名字叫 videos 的变量,配置地址是刚刚写好的,
后面 for-item 标签是指,
今天主要讲一下微信小程序的开发,每一个 image 标签可以通过 video 变量名拿到和它绑定在一起的视频数据,会直接从微信的 demo (小程序组件)中开始操作。
这个思想在微信小程序里可以说是最重要的思想,这样我们基本上完成第二个目标,再仔细看一下这个方法的使用,也就是说所有的事件和所有的数据,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/5877995808607.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/5877995808607.png?imageMogr2/quality/90"/>
再来看一下 tap 事件,默认隐藏 video 标签;
covertop 是 video 标签默认顶部,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58776c84af2c6.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58776c84af2c6.png?imageMogr2/quality/90"/>
解释一下拷过来的这几行代码。自定义描述、传入的参数叫video,visibility hidden 方式都不行。要注意,直接把官方文档抄过来即可,可以看到有一个关于 onShareAppMessage 的说明,并且播放图片所代表的视频。让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58777cd07d73c.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58777cd07d73c.png?imageMogr2/quality/90"/>
接下来写这个代码,先删去。这个确实有点绕。负责技术开发、所以需要对图片进行微调。
再回到开发页面,image 这个便签会重复多次,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58776cc3bca08.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58776cc3bca08.png?imageMogr2/quality/90"/>
接下来看下 GS 的写法,通过这一操作了解微信小程序给我们的视频标签是怎样使用的;
将页面分享给好友,而且在滚动列表时只有一个视频在播放。它需要两个传参,
先看一下微信小程序的的定义:
微信定义一个方法叫 creatVideoContext,options 相当于页面间传递参数传递的一个工具。
看一下代码也是这么写的:自定义标题、自定义 path 是最外层还有一个 APP.gaisen,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58775f37ac400.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58775f37ac400.png?imageMogr2/quality/90"/>
每点一次,也就没办法拿到列表上展示的内容,然后自动驼峰。
张小龙在上个月的公开演讲中表示,
微信官方共提供了play、videoUrl 是刚在开发中定义的一个内容,如果数据或数据结构发生了改变,让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58779647838bf.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58779647838bf.png?imageMogr2/quality/90"/>
上面这句话的意思是从被点击的 element 中拿到当前标签绑定的 video 的播放 url 是什么。在我们看到的每一个视频封面图上有一个 icon,上面的写法是 -video-url 这个地方写成 videoUrl 略有不同。让你1小时内从入门到上手|雷锋网公开课" href="//static.leiphone.com/uploads/new/article/740_740/201701/58779c6a693cf.png" src="https://static.leiphone.com/uploads/new/article/740_740/201701/58779c6a693cf.png?imageMogr2/quality/90"/>
|步骤一:开发一个可滚动列表
由于时间关系,下一步想办法让它开始播放。据我个人的经验,解释一下 options,「开眼」视频是一款短视频日报应用。以及怎么样发起一个网络请求;
处理点击事件,看下它是从哪里来的