当前位置:   article > 正文

UNIAPP填坑之项目结构_media_err_decode(-11001,11010002)

media_err_decode(-11001,11010002)

项目名:数字化人才管理系统

项目用时:60天

项目总概:35张页面,31个从0开始编写的组件

源码以后会一步步开放并介绍通用功能的实现(本文暂时不开放),包括但不限于上线、版本更新和极光推送。我希望通过该文章,帮助有缘人走更少的弯路。

下述说明,有部分只适用于此项目

所用技术
- uniapp、vue3.0、小程序、weex、深入的flex应用、pinia
- 其中uniapp、vue3.0和深入的flex应用是必须掌握的

必看说明
### 发布新版本(重点,发布应用商店才能改)
- 1、manifest.json - 应用版本号(必须大于上一个版本,不能小于)
- 2、生成各大平台的正式包(苹果要用正式证书,安卓可以用线上证书)
- 3、登录各大应用商店后台一一发布。
### 当前版本热更新(重点,不能改应用版本号)
- 1、manifest.json - 应用版本名称(必须大于上一个版本,不能小于,小于无法触发热更新,仅相对于此项目)
- 2、发行 - 原生APP - 制作应用wgt(得到wgt包)
- 3、命名规则:__UNI__53922C3_20221021150207.wgt,20221021150207即年月日时分秒。
- 4、通知后台,把新的应用版本名称和wgt包告诉后台
- 5、安卓模拟器 - 我的(重新进入) - 版本升级 - 检查是否显示红色的标志 - 点击查看控制台输出的结果是否匹配
### app更新原理
- 热更优先于版本升级
### 什么时候发布版本?
- 一般情况下,模块变动,安卓或苹果底层算法变动后,需要发布版本,一些问题修复,一般使用热更新。

用户信息(后续会介绍全局配置和配置后的缓存问题的解决)
- 唯一获取方式:getApp().globalData.userInfo
- 用户信息的赋值,一般情况会在模板语法{{}}里面,这时候一定要注意,必须在两个阶段(onShow和onLoad)获取用户信息,并赋值给新的对象,如this.userInfo = getApp().globalData.userInfo,赋值后,可以使用了{{ userInfo.username }}。两个阶段(onShow和onLoad),缺一不可。
- 上述也适用于多语言
- 上述方式除了规范用户信息的管理,更重要是解决账号切换的缓存问题。

项目结构
### api
- 0、对uni.request进行二次封装
### components
- 0、封装一些常用的UI组件和功能组件
### locale
- 0、国际化
- 1、对WEB开发的国际化实际应用进行了二次封装,封装后实现了对vue组件和nvue组件的兼容
### pages
- pages/app - 基于nvue模式开发的APP页面
-  pages/router - 由于部分被共用的功能无法使用vue3.0组件,所以部分共用的功能将以路由组件的形式发行
- 1、jump - 以iframe的形式打开外部链接
### static
- 0、静态文件处理,在H5和小程序端可以动态修改
- 1、config是系统核心配置
### store
- 0、使用最新的pinia封装了状态管理
### utils
- base64.js是base64文件的唯一入口
- request.js是请求的唯一入口
- index.js其它工具函数入口
### App.vue
- 路由拦截和白名单等可在这里面设置
### index.html

### manifest.json
- uniapp的最底层配置,一般情况下只用到版本号
- 当然也可以改logo等等
### package.json
- npm入口
### pages.json
- 路由配置入口
### uni.scss
- scss的根(不要修改)

图片处理
- 1、封装了一个对uniapp更友好的组件,van-image

视频处理
- 1、如果客户反馈这个错误,MEDIA_ERR_DECODE(-11001,11010002),考虑是服务器开启了防盗链。如果是微信小程序,需要添加域名白名单https://servicewechat.com
- 2、视频名称不能带有中文,要编码,需要使用encodeURI编码,其它编码不生效

小程序
- 1、小程序底部工具栏的图片请参考官方的需求去设计
- 2、小程序底部工具栏功能不能超过5个,最好4个

性能优化
- 由于小程序和APP对长列表的支持不太友好,特别在非nvue模式下,APP会存在明显的帧数丢失
- 所以长列表的渲染需要等待动漫结束,这种情况一般会采用延迟加载,一般用于onLoad阶段(非常重要,该项目已经完美实现)
- APP对长列表的处理,推荐nvue模式,但nvue模式开发较为复杂
- 尽量不要使用区域滚动,使用页面滚动

版本迭代
- 版本迭代的时候,需要在manifest.json里面追加版本号,特别是发行APP包的时候!

APP版本升级
- 版本升级引用模块:
- https://ext.dcloud.net.cn/plugin?id=1371
- 1、已经在个人中心 - 版本升级部署好基本代码了
- 2、已经封装进相关的工具方法

APP信息推送
- 登录的时候,收集推送id
- 推送引用模块
- https://ext.dcloud.net.cn/plugin?id=741
- 1、已经在启动页集成相关代码
- 2、已经封装进相关的工具方法
- 3、后台推送接口:https://api.jpush.cn/v3/push

APP调试
- 1、安卓 - 运行(制作自定义调试基座) - 运行到APP基座 -  MUMU模拟器
- 2、苹果 - 运行(制作自定义调试基座) - 运行到APP基座 -  爱思助手 - 苹果USB链接电脑

版本发行
- 一定更更新版本号
- 小程序发行:发行 -(小程序-微信)- 微信开发者工具 - 上传(注意版本号) - 后台审批 - 审批完发布即可
- H5发行:发行 - 手机H5 - 网站标题(DHCP数字化人才云平台) - 网站域名(http://xxx.xxxxxxx.cn/)(客户的可能需要提供域名发行)
- APP发行:安卓和苹果包名com.xxxxxxx.xxxxxxx
- 应用宝:https://app.open.qq.com/p/login
- 小米:https://dev.mi.com/console/
- 苹果:https://appstoreconnect.apple.com/
- 微信小程序:https://mp.weixin.qq.com/

## 苹果首发和版本迭代
- 发布地址:https://appstoreconnect.apple.com/
- 需要提前准备网站备案资料 - 软著资料 - 回复的时候,可以上传相关证明
- APP审批 - 消息 - 回复(不能随便)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/294311
推荐阅读
相关标签
  

闽ICP备14008679号