微信小程序开发 | API应用案例(下)

article/2025/9/17 20:05:57

API应用案例(下)

  • 6.1【案例5】模拟时钟
    • 6.1.1 案例分析
    • 6.1.2 前导知识
    • 6.1.3 钟表页面布局
    • 6.1.4 钟表页面绘制
  • 6.2【案例6】罗盘动画
    • 6.2.1 案例分析
    • 6.2.2 前导知识
    • 6.2.3 设计罗盘页面布局
    • 6.2.4 手指触摸旋转罗盘
    • 6.2.5 单击按钮操作罗盘
  • 6.3【案例7】文件上传与下载
    • 6.3.1 案例分析
    • 6.3.2 前导知识
    • 6.3.3 录音和上传
    • 6.3.4 文件的下载
  • 6.4【案例8】在线聊天系统
    • 6.4.1 案例分析
    • 6.4.2 前导知识
    • 6.4.3 编写Node.js服务器端代码
    • 6.4.4 实现通信功能
    • 6.4.5 编写聊天页面
  • 总结

6.1【案例5】模拟时钟

6.1.1 案例分析

模拟时钟任务需求

  • 使用canvas绘制时钟,实现模拟时钟的功能。
  • 钟表时间与系统时间保持一致,刻度将24小时制转化为12小时制。
  • 绘制中心圆
  • 绘制外层大圆
  • 绘制分针、时针、秒针。

页面效果图:
在这里插入图片描述

6.1.2 前导知识

  1. canvas组件(原生组件,默认宽高为300px*225px)
    canvas 常用属性
    在这里插入图片描述
    canvas用法
  • 创建canvas.wxml文件。
    在这里插入图片描述
  • canvas组件默认样式如下。
    在这里插入图片描述

canvas组件默认效果图:
在这里插入图片描述

注意
canvas组件是原生组件,它的层级是最高的,不能通过z-index设置层级,css动画对canvas组件无效。

  1. canvas绘制矩形,演示绘制的基本步骤
    第1步:创建Canvas绘图上下文对象CanvasContext
    在这里插入图片描述
    第2步:使用Canvas绘图上下文进行绘图描述
    在这里插入图片描述
    第3步:画图
    在这里插入图片描述
    矩形效果图:
    在这里插入图片描述
  2. canvas绘制笑脸,示例代码如下:
    第1步:创建Canvas绘图上下文对象CanvasContext
    在这里插入图片描述
    第2步:设置线条颜色和线宽
    在这里插入图片描述
    第3步:移动画笔坐标位置,绘制(外部大圆)
    在这里插入图片描述
    第4步:移动画笔坐标位置,绘制(嘴巴线条)
    在这里插入图片描述
    第5步:移动画笔坐标位置,绘制(左眼圆圈)
    在这里插入图片描述
    第6步:移动画笔坐标位置,绘制(右眼圆圈)
    在这里插入图片描述
    第7步:画出当前路径的边框
    在这里插入图片描述
    第8步:移动画笔坐标位置,绘制(左眼圆圈)
    在这里插入图片描述
    笑脸效果图:
    在这里插入图片描述
  3. canvas对象方法介绍:
    CanvasContext.draw ():将之前在绘图上下文中的描述(路径、样式、变形)画到canvas中。
    CanvasContext.arc():创建一条弧线。
    CanvasContext.rect():创建一个矩形路径。
    CanvasContext.lineTo():新增一个新点,用stroke方法来画线条。
    CanvasContext.moveTo():把路径移动到画布中的指定点,不创建线条。

6.1.3 钟表页面布局

在这里插入图片描述

6.1.4 钟表页面绘制

在这里插入图片描述

6.2【案例6】罗盘动画

6.2.1 案例分析

风水罗盘动画任务需求

  • 实现旋转动画效果。
  • 实现缩放动画效果。
  • 实现移动动画效果。
  • 实现倾斜动画效果。
  • 实现旋转和缩放动画同时效果。
  • 实现旋转后缩放动画效果。

6.2.2 前导知识

  1. wx.createAnimation()
    wx.createAnimation() 参数对象的常用属性
    在这里插入图片描述
  2. animation动画对象
    • animation.step():动画队列。
    • animation.export():导出动画。
    • animation.rotate(number angle):从原点顺时针旋转一个角度。
    • animation.scale(number sx, number sy):缩放。
    • animation.skew(number ax, number ay):倾斜
    • animation.translate(number tx, number ty):平移变换。

6.2.3 设计罗盘页面布局

在这里插入图片描述
在这里插入图片描述

6.2.4 手指触摸旋转罗盘

在这里插入图片描述

在这里插入图片描述

6.2.5 单击按钮操作罗盘

  1. 编写rotate()函数,实现从原点顺时针旋转一个角度
    在这里插入图片描述
  2. 编写scale()函数,实现缩放效果
    在这里插入图片描述
  3. 编写translate()函数,实现平移变换
    在这里插入图片描述
  4. 编写skew()函数,实现对 X、Y 轴坐标进行倾斜
    在这里插入图片描述
  5. 编写rotateAndScale()函数,实现旋转和缩放同时进行
    在这里插入图片描述
  6. 编写rotateThenScale()函数,实现旋转之后再缩放
    在这里插入图片描述
  7. 编写all()函数,实现同时展示全部动画
    在这里插入图片描述
  8. 编写allOrder()函数,实现按顺序展示全部动画
    在这里插入图片描述
  9. 编写reset()函数,实现回到原始状态
    在这里插入图片描述

6.3【案例7】文件上传与下载

6.3.1 案例分析

文件上传、下载案例任务需求

  • 实现了请求服务器文件的上传与下载。
  • 实现调起设备录音功能。
  • 实现停止录音功能。
  • 实现播放录音功能。
  • 实现上传录音文件到服务器的功能

6.3.2 前导知识

  1. 录音API
    在这里插入图片描述
  2. 文件上传API
    在这里插入图片描述
  3. 文件下载API
    在这里插入图片描述

6.3.3 录音和上传

在这里插入图片描述

在Page()前面编写代码,获取音频实例对象和录音管理器对象,并在录音完成后保存音频文件的临时路径

在这里插入图片描述

在Page()中编写代码:
在这里插入图片描述

6.3.4 文件的下载

文件的下载任务需求

  • 用户单击“播放文章”按钮,调用wx.downloadFile()方法。
  • 把服务器文件下载到本地。
  • 接口调用成功后,在success()回调函数中播放音频文件。

在这里插入图片描述

在这里插入图片描述

6.4【案例8】在线聊天系统

6.4.1 案例分析

在线聊天案例实现了客户端和服务器端的对话聊天,服务器端用Node.js来搭建服务,客户端通过小程序中的WebSocket API来实现。
在线聊天系统任务需求

  • 服务器向小程序发送消息,展示在聊天界面的左侧。
  • 小程序向服务器发送信息,展示在聊天界面的右侧。
  • 小程序发送消息,服务器端收到后自动回复消息返送给小程序。

页面效果图:
在这里插入图片描述

6.4.2 前导知识

  1. WebSocket
    WebSocket作用
    • 实现了浏览器和服务器的全双工通信。
    • 是客户端与服务器之间专门建立的一条通道。
    • 建立连接后,就可以从通道中实时获取服务器的数据。

注意事项:WebSocket的协议是以ws或wss开头的,在小程序中,正式项目必须使用wss协议,在开发模式下可以使用ws协议。

  1. wx.connectSocket(),创建一个WebSocket连接:
    在这里插入图片描述
  2. wx.sendSocketMessage(),通过WebSocket连接发送数据:
    在这里插入图片描述
  3. wx.onSocketMessage(),监听WebSocket接受到服务器的消息事件:
    在这里插入图片描述

6.4.3 编写Node.js服务器端代码

本节选择使用Node.js搭建开发者服务器,安装Node.js,创建项目

  1. 初始化项目,将会自动创建package.json配置文件。
    在这里插入图片描述
  2. 安装webSocket库。
    在这里插入图片描述
  3. 安装nodemon监控文件修改(如果已经安装则跳过此步)。
    在这里插入图片描述

执行上述命令后,在项目目录下创建socket.js文件,编写代码如下:

  1. 引入http模块和WebSocket库。
    在这里插入图片描述
  2. 创建一个webSocket Server。在这里插入图片描述
  3. 事件监听。
    在这里插入图片描述
  4. 连接的关闭监听。
    在这里插入图片描述
  5. 接收控制台中的输入。
    在这里插入图片描述
  6. 暴露对外访问接口地址。
    在这里插入图片描述
  7. 保存上述代码后,执行如下命令,启动服务器。
    在这里插入图片描述

6.4.4 实现通信功能

  1. 创建空白项目,在app.json中添加页面路径。
    在这里插入图片描述
  2. 进入index.js中,连接服务器测试。
    在这里插入图片描述

执行上述代码,在服务器控制台看到输出结果。
在这里插入图片描述

小程序端控制台接收消息结果,如下图所示:
在这里插入图片描述

6.4.5 编写聊天页面

在这里插入图片描述

在这里插入图片描述

进入index.js文件,监听服务器发送给客户端的消息,并将消息显示在页面中。
在这里插入图片描述

编写rolling_bottom()方法,使聊天内容始终显示在最底端。
在这里插入图片描述

初始化data:{}数据。
在这里插入图片描述

编写input输入框绑定事件bindChange()函数,监听input值的改变。
在这里插入图片描述

编写“发送”按钮绑定事件send()函数,判断发送内容是否为空。
在这里插入图片描述

编写temp对象。
在这里插入图片描述

编写发送对象为空的逻辑代码。
在这里插入图片描述

编写关闭页面的onUnload()函数,关闭WebSocket连接。
在这里插入图片描述

总结

本章讲解了canvas绘图、animation动画、文件上传与下载、录音与播放,以及通过WebSocket实现在线聊天系统。通过本章学习,读者应掌握这些技术的使用,能够利用canvas来绘制各种图形;能够使用animation动画实现移动、旋转、移动、缩放等效果;能够根据实际需求开发文件上传、下载、录音、在线聊天等功能。


http://chatgpt.dhexx.cn/article/uekg01wE.shtml

相关文章

使用微信小程序开发弹出框应用实例详解

1 2 3 4 5 view class"container" class"zn-uploadimg"> <button type"primary"bindtap"showok">消息提示框</button> <button type"primary"bindtap"modalcnt">模态弹窗</button&g…

小程序代码示例整理

以下是分享了一部分小程序的代码示例&#xff0c;希望能够帮助到你们&#xff0c;抓紧收藏吧 微信小程序知乎日报 https://github.com/myronliu347/wechat-app-zhihudaily 微信小程序购物车案例 https://github.com/SeptemberMaples/wechat-weapp-demo 微信小程序–聊天室…

微信小程序开发实例

一、注册小程序账号 1.进入微信公众平台&#xff08;https://mp.weixin.qq.com/&#xff09;&#xff0c;注册小程序账号&#xff0c;根据提示填写对应的信息即可。2.注册成功后进入首页&#xff0c;在 小程序发布流程->小程序开发与管理->配置服务器中&#xff0c;点击…

微信小程序之登录界面示例

注&#xff1a;这里使用的是原生微信小程序 微信小程序之登录界面示例 使用wxss和wxml index.wxml文件中代码 <view class"v1"><!-- v2父容器 子view使用绝对布局 --><view class"v2"><view class"dltext">登录<…

一个微信小程序开发示例

一个微信小程序开发示例&#xff08;豆瓣电影&#xff09; 新版本&#xff08;不包含工作流&#xff09;请移步至&#xff1a;https://github.com/zce/weapp-douban当前仓库会暂缓更新&#xff0c;主要留下来给大家答疑需要基础教程的朋友们稍等一阵吧&#xff0c;目前有计划重…

微信小程序实例系列

实战 【微信小程序】---- redux 在原生微信小程序的使用实例【微信小程序】---- weapp-redux的使用文档【微信小程序】---- Promise.then(success, fail)执行顺序的问题【微信小程序】---- 监听页面停止滚动【微信小程序】---- CustomBar 公用组件封装微信小程序----开发rui-s…

微信小程序作品实例

目录 简介 作品详情 作品代码 一、主页界面 1、WXML文件: 2、WXSS文件: 3、JS文件 4、JSON文件: 5、补充 二、购物车界面 1、WXML文件 3、JS文件 4、JSON文件 三、分类界面和个人中心界面 简介 这是我在学习完微信小程序后&#xff0c;写的一个小案例&#xff0c;是…

微信小程序开发之——微信小程序示例

一 概述 除了WeUI组件库&#xff0c;官方进行了扩展&#xff0c;包含组件库、扩展能力、接口和云开发示例 项目地址在线预览码预览界面miniprogram-demo 二 如何使用小程序示例 2.1 小程序示例——tabs 官方示例下的tabs位置 miniprogram-demo-master\miniprogram\page\we…

微信小程序相关操作示例

微信小程序相关操作示例 wxml-写页面for指令绑定事件数据绑定获取当前用户相关信息的方式跳转展示用户信息表单提交键盘输入的控制 js-写方法初始数据&#xff08;字典&#xff09;&#xff1a;方法函数&#xff1a;存储图片到云开发平台存储访问服务器的request方式获取当前用…

小程序-demo:小程序示例

ylbtech-小程序-demo&#xff1a;小程序示例 1.返回顶部 0、 1、app.js const openIdUrl require(./config).openIdUrlApp({onLaunch: function () {console.log(App Launch)},onShow: function () {console.log(App Show)},onHide: function () {console.log(App Hide)},glo…

Toast与Snackbar的那点事

背景 Toast是Android平台上的常用技术。从用户角度来看&#xff0c;Toast是用户与App交互最基本的提示控件&#xff1b;从开发者角度来看&#xff0c;Toast是开发过程中常用的调试手段之一。此外&#xff0c;Toast语法也非常简单&#xff0c;仅需一行代码。基于简单易用的优点…

Flutter之SnackBar原理详解

初次学习SnackBar控件&#xff0c;第一反应就是这货怎么感觉跟Android的Toast一样&#xff01;使用起来确实简单&#xff0c;但是其内部原理扒拉出来到时能学到一点东西&#xff0c;下面就细细的剖析这个组件。 Snackbar的作用就是在屏幕的底部展示一个简短的消息,与此同时&am…

Android Material Design 系列之 Snackbar 使用详解

前言 本文是 Material Design 系列第二篇&#xff1a;SnackBar 的提出实际上介于 Toast 和 Dialog 的中间产物&#xff0c;SnackBar 提供有关操作的轻量级反馈&#xff0c;它们在移动设备的屏幕底部显示一条简短消息。SnackBar 出现在屏幕上所有其他元素的上方&#xff0c;一次…

Android中Snackbar的介绍以及使用

Android中Snackbar的介绍以及使用 介绍 Snackbar可以说是Toast的升级版&#xff0c;不仅有显示信息的功能&#xff0c;还可以添加一个Action&#xff0c;实现点击功能&#xff0c;可以右滑删除。 效果图 Snackbar是Android Support Design Library库支持的一个控件&#xff0c…

安卓之SnackBar

SnackBar SnakeBar与Toast相似&#xff0c;不过SnakeBar可以与用户进行交互。 不过首先需要在app/bulid.gradle中添加一句依赖&#xff0c;操作方法如下 点击这个灯泡&#xff0c;选择Add Library dependency然后添加下面的依赖 implementation com.android.support:design:2…

使用Snackbar!——Android Snackbar花式使用指南

使用Snackbar!——Android Snackbar花式使用指南 本文是在《Design Support Library第三部分&#xff1a;Snackbar样式》和《Snackbar使用及其注意事项》两篇文章的启发下而来&#xff0c;首先对两篇文章的作者表示感谢。 Snackbar是Android Support Design Library库中的一个控…

Android 中的自定义 Snackbar

前言 Snackbars 在 Android 应用程序中很常见。几乎每个应用程序都使用 Snackbars 来显示有关应用程序中正在发生的事情的一些信息。您可以将 Snackbar 视为 Android 中 Toasts 的替代品或更好的版本。 默认情况下&#xff0c;Snackbar 显示在屏幕底部&#xff0c;它出现在屏…

Snackbar的使用

最近看到Material Design中的Snackbar&#xff0c;跟Toast很相似。似乎效果比原生的Toast好写(当然我们也可以自定义Toast成Snackbar的效果)&#xff0c;至于Snackbar特别深入的定制目前了解甚少&#xff0c;所以这里简单记录一下常用的。 效果图 下面看一下效果 这里面加了个…

Android Snackbar控件

1. Snackbar类 Snackbar是5.0版本出现的控件&#xff0c;类似于Toast&#xff0c;显示在屏幕的底部&#xff0c;包含文字信息与一个可选的操作按钮。需要添加Design依赖库&#xff0c;并且使用Theme.AppCompat主题。 2. 创建Snackbar类 Snackbar利用静态方法make()来创建实…

Android Snackbar简单解析

偶然间发现android中有Snackbar类&#xff0c;还是有点意思&#xff0c;类似于toast。与toast相比&#xff0c;最明显的区别是:Snackbar只能在屏幕底部显示。其他用法基本与toast相似。 先来张效果图吧&#xff0c;静态图&#xff1a; 大概的用法呢&#xff1f;&#xff1a; S…