uniapp作为跨端的利器,可同时发布到安卓、ios、微信小程序、支付宝小程序、百度小程序、头条小程序、QQ小程序等8个平台。
如果是轻量级的应用,不涉及太多功能的话,或许可以直接打包移植,但涉及前后端各类交互多的项目,则需要注意很多的地方。
移植到各类平台,首先要避开那些在某平台上不生效或有差异的API,这时候可以用条件编译的方式,同时也要配置在该平台专属的一些参数,了解该平台的一些限制。
想做好跨端,建议先阅读下官方的一些指导:
条件编译及各端注意事项:https://uniapp.dcloud.io/platform
比如微信小程序:
如果用到了获取当前位置的API,则需要在manifest.json中找到mp-weixin代码块,添加如下代码:
"permission": { "scope.userLocation": { "desc": "你的位置信息将用于小程序位置接口的效果展示" // 高速公路行驶持续后台定位 } }
另外微信小程序对代码包有大小限制,貌似才2M,这时候你不得不把图片等静态资源放到服务器上以减少体量,也可以使用分包化解,但刚接触分包这一块还是比较繁琐的。
对于图片采取服务器路径的形式,这里注意一下,使用 :src="$imgSrc + 'home/bg.png'" 这种域名拼接某张图片的形式编译到微信小程序开发工具可能是不行的,可以考虑用如下方式:
//main.js中挂载方法 //获取图片路径 Vue.prototype.getImgSrc = function(src){ return "http://www.服务器域名/" + src; } //在vue文件中使用方式如下 <image mode="widthFix" :src="getImgSrc('home/home.png')"></image>