“目标挑战”小程序开发手记

迦叶科技在微信小程序、移动端深耕多年,为诸多公司提供了专业、高质量的解决方案,相关案例可浏览官方网站:http://www.jiayevip.com,商务合作可以联系微信号: 419177397

加入“目标挑战”小程序开发团队很偶然,当时我刚刚离职在休长假,41岁的程序媛,略显尴尬。我心里想着找个山青水秀的地方种田或者回家带娃,但手里停下来不写代码了心里空落落的,不论做了多少事都觉得没产出。我知道,自己还是喜欢写代码,喜欢通过代码解决问题。

之前没接触过小程序开发,心里怂怂地忐忑着,但又忍不住有点小兴奋。

产品、设计、开发几个人异地合作,通过视频会议启动项目,有问题、有想法随时沟通。

所有资源在线管理,设计稿在蓝湖,产品、接口文档有道云,代码git上托管,团队协作teambition,bug暂时就记录在石墨里。

在自己没尝试过的领域里前行,总会遇到阻力,难免掉坑,但正是这些过程让我们不断学习成长。分享一点开发过程中遇到的问题,抛砖引玉,同时也给像我一样未开发过小程序的伙伴们,不足之处恳请指正。

“目标挑战”小程序开发手记_第1张图片

微信小程序的一些限制:

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证书。

“目标挑战”小程序开发手记_第2张图片

一些小细节:

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重定向到其他不可信域名中。

以上,不足之处,再次恳请指正。

记得曾经有位我很敬重的人说过一句话:“脚踏实地,仰望星空”。也许并不是每个人都有很大的抱负,但即便做一个平平凡凡的人,我们仍希望自己能够脚踏实地前行,哪怕头发花白时也能保持一种持续学习的状态,每天都能有一点小小的进步。

给自己一个小目标,利用乘地铁的时间阅读也好,学习一门新的开发语言也好,保持良好的情绪来面对孩子和家人也好,帮助孩子更好地坚持每天练琴、上口语课也好,定目标容易,贵在坚持。

不积跬步,无以至千里。

不积小流,无以成江海。

坚持,除了意志力之外,更需要正确的姿势。在开发“目标挑战”小程序的过程中,随着对她的不断深入了解,我已经由开发者慢慢转变为她的真实用户。定一个目标,坚持去完成,每天用打卡来记录这个过程,打卡的过程是自我审视的过程,也是自我激励的过程。每天经过的地铁站,石楠花谢了,山茶又开了,日复一日,时光以看得见的方式在流逝,是就这么看着它流走,还是定个小目标,来个小坚持,然后突然有一天你就遇见了那个更好的自己。

扫码下图,开启你的目标挑战之旅。

“目标挑战”小程序开发手记_第3张图片

本文作者:依冉

你可能感兴趣的:(“目标挑战”小程序开发手记)