第一次用uniapp这个框架爱开发APP,遇到好多坑,填的人很是头疼.总结了一下遇到的一些问题,希望对刚用uni-app开发的小伙伴有些作用.
App开发中需要注意的一些问题
- 图片/文件上传(目前uniapp可以支持图片上传以及图片预览),如果要非图片的文件,需要调用第三方的应用,目前只支持预览,详细可参考官方文档
- 涉及到多个页面之间数据交换时,页面栈的使用,手机物理返回键和页面左侧的返回键,需要注意.可以根据具体情况使用不同的路由参数.关于页面栈的问题,具体看项目需求而定,如果项目是比较大的,数据交互以及页面之间数据传递比较复杂的话,要注意页面数据的处理.
- 组件的使用,在有些组件不能满足开发需求时,可以找到组件的封装文件,自己修改相关的结构,达到自己想要的效果,但是要注意的是,修改后,所有引用该组件的页面效果都会改变.还有就是一些组件的效果不能满足项目的要求,需要我们在开发的时候注意在这些组件的基础上添加自己需要的功能,这时候需要仔细测试,自己添加的功能有没有与原来的功能发生冲突,以免影响整个组件的使用效果.
- 使用地图等api的时候,需要注意,因为谷歌在国内不支持,需要调用百度,高德等第三方服务,这些需要去申请,在打包的时候在manifest中填写
- 在图片预览及其他离开APP调用第三方软件时候,会离开APP.即页面栈,所以需要注意如果该页面每次进来都会调用接口,从后台获取数据,并且页面有需要修改的数据,要将其保存在本地,否则再次回到该页面会刷新数据,出现数据还原的问题
- 在项目中可能会遇到uniapp中提供的图标不能满足项目中的需求,项目中引用的一些图标文件.ttf格式,可以通过下载High-Logic FontCreator这个软件编辑,软件使用方法自行百度查询.
- 因为uniapp是使用vue开发的,所以vue中的一些方法都可以使用,如通过vuex可以设置全局的变量,方便使用,也可以将一些在项目中经常调用的方法和常量在main.js中挂载在全局的vue上,在其它页面通过this调用等等
- uniapp中关于设置顶部导航栏有专门的方法,可以在官网查看具体的属性,设置符合项目需求的导航
- 在开发过程中,因为有些功能已经有比较成熟的插件使用,可以在uni的官方插件市场找到符合项目要求的插件,引用到项目中,减少重新开发,节省时间.
- 还要注意的是,因为是通过HBuilderX开发的,并且项目中使用的api也是跟微信小程序的api基本相似,所以在测试的时候,可以运行在微信开发者工具上,方便测试一些功能,但是一些APP独有的功能模块,微信开发者工具并不能测试,这时需要连接手机,进行真机测试.,可以在编辑器的控制台看到你想输出的内容,以便你修改测试的问题.
- uniapp开发中请求数据时,要跟后端协商好参数的类型,防止出现类型错误,后端拿不到相应的参数,
- 背景图片的使用:支持base64格式图片;支持网络路径的图片;在使用本地路径背景图片需要注意:
- 图片小于40kb,uniapp会自动将其转成base64格式;
- 图片大于等于40kb时,需要开发者自己将其转成base64格式使用,或将其挪到服务器上,从网络地址引用
- 本地背景图片的引用路径仅支持以~@开头的绝对路径,不支持相对路径
- 在某个页面存储在本地的数据,在离开该页面的时候需要及时清除,不包括其它页面需要的数据,但是在登陆以及登出APP的时候需要清除,不然会影响APP中原先的数据.
- 在使用模态框的时候,如果有事件需要绑定给确定或者取消按钮,需要在结构中单独调封装的事件,在后面跟自己的事件名