[关闭]
@jameszuo 2018-03-05T09:23:55.000000Z 字数 1435 阅读 278

合作伙伴大会报名小程序复盘

工作


编码时遇到的问题

视频播放

  1. iOS下video组件播放mp4格式视频卡住,通过隐藏属性custom-cache="{{false}}"禁用缓存后解决
  2. 因为视频播放时会卡住的bug而禁用了缓存,所以每次播放都要缓冲,通过wx.downloadFileAPI主动下载视频到客户端本地进行播放后解决

    • 测试过程中发现前三次还可以下载,后面再下载就会报错downloadFile:fail exceed max file size。分析后发现小程序的下载API没有自动淘汰机制,不会删除旧的文件。所以多次下载后触发了本地存储大小10MB的限制,需要在每次下载前先删除旧的文件。
    • 下载前需要先删除已有的文件,且如果下载失败时,需要使用CDN的mp4路径进行播放
    • 完整流程:
      此处输入图片的描述
  3. cover-view如果出现的位置不在video的可视范围内,则不会显示出来

  4. iOS下视频在播放过程中,如果切出小程序,再回来,不会继续播放,手动执行videoContext.play()无效。先videoContext.pause(),等待约200ms后再videoContext.play()即解决

拍照

  1. 微信可能没有相机权限,需要根据错误回调进行判断,并提示用户开启微信使用相机的权限;小程序也可能没有拍摄权限,需要根据错误回调进行判断,并通过弹框引导用户跳转至小程序的设置界面

    • 判断相机初始化失败是因为用户未授权小程序使用相机,还是未授权微信使用相机

      1. onCameraError({detail = {errMsg: ''}}) {
      2. // 小程序设置中没有授予权限
      3. let isWeAppSettingAuthDeny = /auth deny/i.test(detail.errMsg)
      4. // 系统设置中没有给微信授予权限
      5. let isSysSettingDeny = !isWeAppSettingAuthDeny
      6. },
    • 如果是未授权小程序使用相机,需要弹框引导用户跳转至小程序的设置界面 wx.openSetting(),并在回调中根据设置结果进行处理:已开启就重建camera;未开启则再次提示
  2. 每次切回拍照界面时应再次判断权限是否已开启,如果开启,拍照功能应立即启用,而不需要用户再次进入

报名表单

  1. 如果number input上方有普通input,在点击number input时键盘会盖住这个number input,调整下顺序,把number input放到普通input前面可以解决

UI

  1. 使用标你妹上传psd文件自动生成标注 (标注的像素与rpx单位有一定误差,仅供参考_)
  2. 使用PS插件Cutterman,切图不求人。使用cutterman切图有两种方式:
    • 选中单个或多个图层导出
    • 选择画布指定区域,同时选中单个或多个图层导出

其他

  1. 控制台始终打印 null 错误,没有任何错误信息和行号可以参考,通过排除法定位到了问题,是 this.setData({ key })时,这个key的值如果是undefined,就会产生这个错误,实际似乎不影响代码执行,但应避免出现

联调时遇到的问题

  1. 其他接口联调比较顺利,但其中上传照片的接口从995环境联调通过到部署外网可用耗时约9个工作日(2.11~2.27),期间产品无法完整体验整个流程,等待了较长时间。
  2. 人脸识别的接口与其他接口返回值的格式不一致,需要通过{Functionres} resDataParser参数进行转换

测试时遇到的问题

  1. 产品/BD紧急新增了视频宣传页,且多次调整文案和视频文件,导致该过程耗费了3个工作日
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注