1.1认识微信小程序
微信(WeChat)是腾讯公司于2011年1月推出的一款为智能终端提供即时通信服务的应用程序。
微信小程序是由腾讯公司推出的一种基于微信平台的轻量级应用程序。用户可以在微信内直接打开使用,无需下载安装,具有快速加载速度和便捷的用户体验。微信小程序可以提供各种功能和服务,包括社交互动、在线购物、生活服务、新闻阅读等。用户可以通过微信搜索、扫描二维码、朋友分享等方式进入小程序,方便快捷。微信小程序已经成为微信生态系统中重要的组成部分,为用户提供了丰富多样的应用体验。
小程序的特征:
小程序嵌入微信之中,不需要下载安装外部应用,用户通过扫描二维码和搜索相关功能的关键词即可使用,具备无需安装,触手可及,用完即走,无须卸载的特性。
1.无需安装
2.触手可及
3.用完即走
4.无需卸载
小程序应用场景的特点:
1简单的业务逻辑
2低频度的使用场景
1.2微信小程序开发流程
微信小程序开发流程如下:
第1步,在微信公众平台上注册小程序账号;第2步,下载开发者工具进行编码;第3步,通过开发者工具提交代码,待通过审核后既可以发布。
注册微信小程序开发者账号:
- 访问微信公众平台开发者注册页面:微信公众平台
- 点击页面右上角的“注册”按钮,填写注册信息,包括邮箱、手机号码等。
- 完成注册后,登录微信公众平台,进入小程序管理页面。
- 在小程序管理页面,点击“开发”选项,然后点击“开发设置”,即可查看自己的开发者ID(AppID)。
安装微信开发者工具:
- 在浏览器中打开微信开发者工具官方网站:微信开发者工具下载地址与更新日志 | 微信开放文档
- 根据您的操作系统选择合适的版本进行下载,如Windows、Mac OS等。
- 下载完成后,双击安装程序进行安装。
- 安装完成后,打开微信开发者工具,登录您的微信开发者账号,即可开始使用。
1.3第一个项目代码:
-
{ "usingComponents": { "navigation-bar": "/components/navigation-bar/navigation-bar" } }
// index.ts // 获取应用实例 const app = getApp<IAppOption>() const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' Component({ data: { motto: 'Hello World', userInfo: { avatarUrl: defaultAvatarUrl, nickName: '', }, hasUserInfo: false, canIUseGetUserProfile: wx.canIUse('getUserProfile'), canIUseNicknameComp: wx.canIUse('input.type.nickname'), }, methods: { // 事件处理函数 bindViewTap() { wx.navigateTo({ url: '../logs/logs', }) }, onChooseAvatar(e: any) { const { avatarUrl } = e.detail const { nickName } = this.data.userInfo this.setData({ "userInfo.avatarUrl": avatarUrl, hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, }) }, onInputChange(e: any) { const nickName = e.detail.value const { avatarUrl } = this.data.userInfo this.setData({ "userInfo.nickName": nickName, hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, }) }, getUserProfile() { // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 wx.getUserProfile({ desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { console.log(res) this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } }) }, }, })
// index.ts // 获取应用实例 const app = getApp<IAppOption>() const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' Component({ data: { motto: 'Hello World', userInfo: { avatarUrl: defaultAvatarUrl, nickName: '', }, hasUserInfo: false, canIUseGetUserProfile: wx.canIUse('getUserProfile'), canIUseNicknameComp: wx.canIUse('input.type.nickname'), }, methods: { // 事件处理函数 bindViewTap() { wx.navigateTo({ url: '../logs/logs', }) }, onChooseAvatar(e: any) { const { avatarUrl } = e.detail const { nickName } = this.data.userInfo this.setData({ "userInfo.avatarUrl": avatarUrl, hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, }) }, onInputChange(e: any) { const nickName = e.detail.value const { avatarUrl } = this.data.userInfo this.setData({ "userInfo.nickName": nickName, hasUserInfo: nickName && avatarUrl && avatarUrl !== defaultAvatarUrl, }) }, getUserProfile() { // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 wx.getUserProfile({ desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 success: (res) => { console.log(res) this.setData({ userInfo: res.userInfo, hasUserInfo: true }) } }) }, }, })
/**index.wxss**/ page { height: 100vh; display: flex; flex-direction: column; } .scrollarea { flex: 1; overflow-y: hidden; } .userinfo { display: flex; flex-direction: column; align-items: center; color: #aaa; width: 80%; } .userinfo-avatar { overflow: hidden; width: 128rpx; height: 128rpx; margin: 20rpx; border-radius: 50%; } .usermotto { margin-top: 200px; } .avatar-wrapper { padding: 0; width: 56px !important; border-radius: 8px; margin-top: 40px; margin-bottom: 40px; } .avatar { display: block; width: 56px; height: 56px; } .nickname-wrapper { display: flex; width: 100%; padding: 16px; box-sizing: border-box; border-top: .5px solid rgba(0, 0, 0, 0.1); border-bottom: .5px solid rgba(0, 0, 0, 0.1); color: black; } .nickname-label { width: 105px; } .nickname-input { flex: 1; }
代码执行结果:
1.4微信小程序开发者工具界面功能介绍
工具栏
模拟区
目录文件区
编辑区
调试区