迦叶科技在微信小程序、移动端深耕多年,为诸多公司提供了专业、高质量的解决方案,相关案例可浏览官方网站:http://www.jiayevip.com,商务合作可以联系微信号: 419177397
加入“目标挑战”小程序开发团队很偶然,当时我刚刚离职在休长假,41岁的程序媛,略显尴尬。我心里想着找个山青水秀的地方种田或者回家带娃,但手里停下来不写代码了心里空落落的,不论做了多少事都觉得没产出。我知道,自己还是喜欢写代码,喜欢通过代码解决问题。
之前没接触过小程序开发,心里怂怂地忐忑着,但又忍不住有点小兴奋。
产品、设计、开发几个人异地合作,通过视频会议启动项目,有问题、有想法随时沟通。
所有资源在线管理,设计稿在蓝湖,产品、接口文档有道云,代码git上托管,团队协作teambition,bug暂时就记录在石墨里。
在自己没尝试过的领域里前行,总会遇到阻力,难免掉坑,但正是这些过程让我们不断学习成长。分享一点开发过程中遇到的问题,抛砖引玉,同时也给像我一样未开发过小程序的伙伴们,不足之处恳请指正。
微信小程序的一些限制:
1) 发布的时候,对提交的代码(打包后)有2M大小的限制,如果有分包,则单个分包/主包大小不能超过 2M,整个小程序所有分包大小不超过4M;
2)页面路径最多只能10层;
3) 背景图片不支持使用本地图片,只支持网络图片,或base64格式的图片,本地图片建议使用image组件;
4) 请求必须是https协议,域名备案过,且不带端口号;
5) 新开页面最多5个;
6) ......
新手入门:小程序开发文档
https://mp.weixin.qq.com/debug/wxadoc/dev/
建议最好先通读,我是边做边查的,走了弯路。
如果你用过Vue.js,微信小程序上手应该很快,语法结构相似。比如微信小程序数据绑定也使用Mustache 语法;wx:for、wx:if类似于Vue的v-for、v-if;微信小程序的生命周期函数跟Vue的也相似等等。
开发工具:微信开发者工具
https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html
可编辑、调试、模拟,开发者工具模拟和在真机上还是略有差异,开发者工具里不校验请求域名、业务域名、web-view域名、TLS版本以及HTTPS证书。
一些小细节:
1、微信公众平台配置:
服务器域名配置:应用服务器、图片服务器、第三方应用服务器等都需要在服务器域名中进行配置,否则不能正常访问。服务器域名配置每个月只能修改5次;
用户身份:开发者、体验者身份,都需要在用户身份中进行配置,有了开发者身份才能访问开发版本,有了体验者身份才可以访问体验版;
开发管理:开发者可以在开发者工具中通过“预览”生成临时二维码,可供开发者在手机上访问;通过将代码打包上传生成体验版二维码,供体验者在手机上访问;开发版本代码提审,通过审核后生成线上版本,可供所有微信用户访问。
2、用户授权
微信小程序的部分接口需要用户授权才能使用,比如:用户信息、地理位置、保存到相册、摄像头、通讯地址等。
使用wx.getSetting可以获取用户当前的授权状态,
在用户初次登录使用小程序时,向用户发起授权请求使用wx.authorize方法;当用户拒绝授权后,则短期内不会出现弹窗,而是直接进入接口fail 回调。在后续操作中如果又要发起授权请求,可以结合wx.showModal(弹窗)和wx.openSetting方法实现。
3、toast
微信小程序可以通过wx.showLoading和wx.hideLoading来显示/隐藏loading提示框,也可以通过wx.showToast和wx.hideToast来显示/隐藏消息提示框,但是wx.showToast仍有些不足的地方,在1.9.0之前的版本icon必须配置(或配置image,其优先级高于icon),且此时消息最多只能显示7个汉字长度,1.9.0之后支持icon可以配置为none,此时消息最多显示两行(约14个汉字长度)。以上不能满足实际业务需求,所以我自定义了toast以满足需求。
4、下拉刷新与上滑加载更多
下拉有两种方法实现:
* 监听onPullDownRefresh事件,并在执行完请求之后通过wx.stopPullDownRefresh()方法来停止下拉刷新;
*通过scroll-view组件来实现。
上滑加载更多的实现,通过监听onReachBottom事件来实现。
需要注意的是,如果使用了scroll-view组件,则onReachBottom不会被触发;onPullDownRefresh和onReachBottom需要在页面对应的*.json文件里进行配置,如:
"enablePullDownRefresh": true,
"onReachBottomDistance": 150
5、图片
微信小程序中,背景图片不支持本地图片,只支持网络图片或base64格式的图片,本地图片建议使用image组件。
关于图片,遇上过图片拉伸的问题,原本想通过背景图的方式解决,又遇到了背景图不支持本地图片的问题,后来发现小程序的image组件挺强大,支持懒加载,也支持多种裁剪、缩放的模式。比如一张长方形的图片在界面上要显示成正方形,想要保持图片的纵横比缩放,还要把短边完全显示出来不留白,就可以用image组件的mode属性:
6、域名合法性自检:
(1)确认是 HTTPS 协议;
(2)确认请求地址不携带端口;
(3)确认域名已备案;
(4)公众号后台已配置相关域名;
(5)TLS 版本是否不足 1.2;
(6)在腾讯云进行 HTTPS 证书检查;
https://cloud.tencent.com/product/ssl#userDefined10
(7)确认没有进行302重定向到其他不可信域名中。
以上,不足之处,再次恳请指正。
记得曾经有位我很敬重的人说过一句话:“脚踏实地,仰望星空”。也许并不是每个人都有很大的抱负,但即便做一个平平凡凡的人,我们仍希望自己能够脚踏实地前行,哪怕头发花白时也能保持一种持续学习的状态,每天都能有一点小小的进步。
给自己一个小目标,利用乘地铁的时间阅读也好,学习一门新的开发语言也好,保持良好的情绪来面对孩子和家人也好,帮助孩子更好地坚持每天练琴、上口语课也好,定目标容易,贵在坚持。
不积跬步,无以至千里。
不积小流,无以成江海。
坚持,除了意志力之外,更需要正确的姿势。在开发“目标挑战”小程序的过程中,随着对她的不断深入了解,我已经由开发者慢慢转变为她的真实用户。定一个目标,坚持去完成,每天用打卡来记录这个过程,打卡的过程是自我审视的过程,也是自我激励的过程。每天经过的地铁站,石楠花谢了,山茶又开了,日复一日,时光以看得见的方式在流逝,是就这么看着它流走,还是定个小目标,来个小坚持,然后突然有一天你就遇见了那个更好的自己。
扫码下图,开启你的目标挑战之旅。
本文作者:依冉