疫情期间,我通过项目重学了小程序

简介: 疫情期间,我通过项目重学了小程序

前言



这段时间,上海疫情爆发的很严重,3月12日起笔者就被封在小区,至今已有40多天。这期间经历了面试,抢菜,写文章,到现在又捡起了小程序


笔者近几年用 github 来记录年度计划,并每周设立计划执行


image.png

年度计划


像前端知识地图、博客、读书还好,都是日常基本功,但是独立作品今年都没有动作,按照进度,上半年怎么也要有一个,于是乎,就想着从想法里拿出一个做成项目


正文



一开始我是想弄我的几行字,因为几行字是H5版本,所以想再做一版小程序,但做完之后感觉有点简单,就打算再做一个


一个机缘巧合的情况下,我想起了三年前尝试做的独立项目——NextDay


image.png


想想,这个页面只有一页,但细节多,还有自定义组件,可以从中学习到做一个小程序会碰到的坑,于是乎,我的小程序之旅有一遭没一遭的做了起来


这里记录笔者做小程序时的困难和解决方案


  • 手画原型


  • NextDay App 为原型展开


  • 小程序开发


  • 微信官方文档·小程序[1]


  • 微信开发社区[2]


  • 自定义导航条


  • 全屏模式下,导航条不让其出现 "navigationStyle": "custom"


  • CSS 也要配合的做,不让他上下滑动postion: fixed


  • 调试接口


  • 需要授权,拿到 Partner NamePartner Secret


  • 也正是因为它严明要开源,所以开源[3]


  • 需要在 header 处加上 Date 和 authorization,authorization 需要加上 md5 加密,可去开源处看代码


  • 主页(主画面)设计、功能


  • swiper 滑动功能接入。接口返回数据是从前几日到今天,如何在 onload 处显示今日数据?swiper 的current设置为今天


  • 布局上采用绝对定位,适配单位上采用rpx和百分比


  • 引入 npm 包


  • 返回的接口数据和页面上的数据是不同的,需要我们从中做转换,遂引入 dayjs[4] 


  • 注册小程序


  • 小程序流程


  • 文案


  • 阴影处理


  • 前端这边的设计,text-shadow 属性


  • 上拉出现设置和分享


  • 抽屉组件,点击分享Icon 分享


  • 分享给朋友和朋友圈设置


  • onShareAppMessage 和 onShareTimeline


  • 分享给朋友时,采用的图片应该是 5:4 比例尺寸的图,使用接口返回的小图,意味着需要每次加载时需要记住当前的所在组,每次滑动时都需要改变当前的所在组


  • 手机适配


  • 接口图片有多种,有适配浏览屏的图片和普通图片


  • wxml 中进行条件判断,这里注意不能加空格


  • 接口云端化


  • 因为 NextDay 的接口是 HTTP 协议,小程序不支持 HTTP 协议的,所以就用云开发做转发


  • 主要参考资料:官网微信学堂视频[5]


  • 代码重构


  • 文件布局,设计,云开发,小程序文件,小程序中又有组件、npm 包等功能


  • 接口


  • 设计logo


  • 不用设计,去官网找即可


  • 字体改造、字体适配


  • 需要找到和 App 中一样的字体,比较难,采用字体识别[6]技术,两种字体,数字日期采用华为最细字体[7],正文描述字体采用日文字体GothicMB(和 App 中一致)


  • 截图对比,调整大小


  • 点击显示下载按钮


  • 如下所示,找到也没用


  • 下载图片功能


  • 失败,不能下载,图片域名不是 HTTPS,不支持下载,如果把图片放在云函数上免费额度肯定不够,后续再想想需不需要加,有没有必要加


  • 设置主页 关于版本、鸣谢


  • 多一个关于页面,新版本去除,感觉没必要


  • 引入自定义组件


  • 抽屉组件,点击弹出


  • 设置


  • 上拉模糊


  • CSS 样式 backdrop-filter


  • 搜索NextDay 关键字搜索不到


  • 应该是刚上架不久,又没做推广,所以搜不到


  • 要全拼NextDay101


  • 消息提醒


  • 希望每一天能提示弹出,新的想法,不知道会不会打扰到别人,第一版就没做

如要跑通这个项目,首先要去申请 PartnerName 、 Partner Secret,这样就能跑通项目,具体的答疑已经在 NextDay 的README[8]中回答,如还有其他疑问,可在Issuse 区提出


效果截图



GIF动态

image.png

GIF


截图


image.png

截图1


image.png

scrrenshot2


image.png

scrrenshot3



参考资料



[1] 微信官方文档·小程

序: https://developers.weixin.qq.com/miniprogram/dev/framework/


[2] 微信开发社区: https://developers.weixin.qq.com/community/develop/question


[3] 开源: https://github.com/johanazhu/nextday101


[4] dayjs: https://www.npmjs.com/package/dayjs


[5] 官网微信学堂视频: https://developers.weixin.qq.com/community/business/doc/000660b6924c50cb18caf1e705140d


[6] 字体识别: https://www.qiuziti.com/


[7] 华为最细字体: https://developer.harmonyos.com/cn/docs/design/des-guides/font-0000001157868583


[8] README: https://github.com/johanazhu/nextday101


相关文章
|
21天前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
45 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
25天前
|
存储 运维 小程序
后端开发零负担!揭秘支付宝小程序云开发的高效与安全,你的项目也能飞速上线?
【8月更文挑战第27天】支付宝小程序云开发是由阿里云提供的集成开发环境,助力开发者高效、安全地构建小程序后端服务,免去服务器搭建,显著提高开发效率并降低运维成本。它集成了云函数、云数据库及云存储等功能,便于快速搭建后端逻辑。例如,仅需简单几行代码即可创建HTTP接口或进行数据管理。这使得开发者能更专注于业务逻辑和用户体验优化,同时平台还提供了强大的安全保障措施,确保数据安全和用户隐私。无论对于初创团队还是成熟企业,支付宝小程序云开发都能有效提升产品迭代速度和市场竞争力。
47 1
|
1月前
|
JSON 小程序 JavaScript
超详细微信小程序开发学习笔记,看完你也可以动手做微信小程序项目
这篇文章是一份全面的微信小程序开发学习笔记,涵盖了从小程序介绍、环境搭建、项目创建、开发者工具使用、文件结构、配置文件、模板语法、事件绑定、样式规范、组件使用、自定义组件开发到小程序生命周期管理等多个方面的详细教程和指南。
|
1月前
|
小程序 前端开发
微信小程序商城,微信小程序微店 【毕业设计参考项目】
文章推荐了一个微信小程序商城项目作为毕业设计参考,该项目在Github上获得18.2k星,提供了详细的使用教程和前端页面实现,适合学习微信小程序开发和作为毕业设计项目。
微信小程序商城,微信小程序微店 【毕业设计参考项目】
|
1月前
|
小程序
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
这篇文章是作者关于学习微信小程序开发并在一周内成功开发出一个商城项目系统的心得体会,分享了学习基础知识、实战项目开发的过程,以及小程序开发的易上手性和开发周期的简短。
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
|
1月前
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
2月前
|
小程序 安全 搜索推荐
【微信小程序开发实战项目】——个人中心页面的制作
本文介绍了如何设计和实现一个网上花店的微信小程序,包括个人中心、我的订单和我的地址等功能模块。个人中心让用户能够查看订单历史、管理地址和与客服互动。代码示例展示了`own.wxml`、`own.wxss`和`own.js`文件,用于构建个人中心界面,包括用户信息、订单链接、收藏、地址、客服和版本信息。我的订单部分展示了订单详情,包括商品图片、名称、销量、价格和订单状态,用户可以查看和管理订单。我的地址功能允许用户输入和编辑收货信息,包括联系人、性别、电话、城市和详细地址。每个功能模块都附有相应的WXML和WXSS代码,以及简洁的样式设计。
106 0
【微信小程序开发实战项目】——个人中心页面的制作
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的校园疫情防控管理平台小程序附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的校园疫情防控管理平台小程序附带文章源码部署视频讲解等
20 0
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的新冠肺炎疫情实时监控附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的新冠肺炎疫情实时监控附带文章源码部署视频讲解等
17 0
|
2月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的业财票务一体项目管理系统 附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的业财票务一体项目管理系统 附带文章源码部署视频讲解等
31 0