微信小程序开发案例 | 通讯录小程序(下)

阶段案例-通讯录小程序

01、逻辑实现

1 通讯录页逻辑

通讯录页主要功能就是点击每行的电话图标可以拨打电话。修改首页wxml代码,在每一行的拨打电话图标处追加点击事件,并携带联系电话参数。

index.wxml相关代码修改如下:

复制代码
1. <!-- 1 整体容器 -->
2. <view class="container">
3. <!-- 2 单行容器 -->
4. <view class="bar" wx:for="{{peopleList}}" wx:key='id'>
5. <!-- 2-1 头像图标(代码略)-->
6. <!-- 2-2 姓名和电话文字区域(代码略)-->
7. <!-- 2-3 拨打电话图标 -->
8. <image src="/images/call.png" bindtap="bohao" data-tel="{{item.tel}}"></image>
9. </view>
10. </view>

在index.js中追加自定义函数bohao,相关代码如下:

复制代码
1. // index.js
2. Page({
3. ...,
4. /**
5. * 自定义函数--拨号
6. */
7. bohao: function (e) {
8. // 获取联系电话
9. let tel = e.currentTarget.dataset.tel
10. // 给指定电话拨号(真机预览有效)
11. wx.makePhoneCall({
12. phoneNumber: tel
13. })
14. },
15. ...16. }

上述代码中用到了wx.makePhoneCall()进行电话拨打,该功能在微信开发工具中仅为模拟效果,但可在真机预览时查看实际效果。

2 拨号盘页逻辑

1)监听数字和符号按键

修改bohao.wxml代码,为数字和符号按键追加自定义点击事件onInput并携带按键字符参数。

bohao.wxml相关代码修改如下:

复制代码
1. <!-- 1 整体容器 -->
2. <view class="container">
3. <!-- 2 顶部电话显示区域(内容略) -->
4. <!-- 3 中间数字键盘区域 -->
5. <view class="numBox">
6. <!-- 3-1 数字键和*#符号键按钮 -->
7. <button wx:for="{{num}}" wx:key="*this" class="num" bindtap="onInput" data-num='{{item}}'>{{item}}</button>
8. </view>
9. <!-- 4 底部按钮区域(内容略)-->
10. </view>

在bohao.js中追加自定义函数onInput,相关代码如下:

复制代码
1. // bohao.js
2. Page({
3. ...,
4. /**
5. * 自定义函数--监听数字和符号按键
6. */
7. onInput: function (e) {
8. // 获取按键符号
9. let num = e.currentTarget.dataset.num
10. // 更新顶部电话显示
11. let newTel = this.data.tel+num
12. this.setData({
13. tel:newTel
14. })
15. },
16. ...17. }

修改后重新编译,随机按下任意一串电话号码效果如图3-33所示。

■ 图3-33 阶段案例逻辑实现:监听数字和符号按键

2)监听删除按键

修改bohao.wxml代码,为删除按键追加自定义点击事件delete并携带按键字符参数。

bohao.wxml相关代码修改如下:

复制代码
1. <!-- 1 整体容器 -->
2. <view class="container">
3. <!-- 2 顶部电话显示区域(内容略) -->
4. <!-- 3 中间数字键盘区域(内容略) -->
5. <!-- 4 底部按钮区域 -->
6. <view class="bottomBox">
7. <!-- 4-1 拨号按钮 -->
8. <image class="callImg" src="/images/call.png"></image>
9. <!-- 4-2 删除按钮 -->
10. <image class="deleteImg" src="/images/delete.png" bindtap="delete"></image>
11. </view>
12. </view>

在bohao.js中追加自定义函数delete,相关代码如下:

复制代码
1. // bohao.js
2. Page({
3. ...,
4. /**
5. * 自定义函数--监听删除按键
6. */
7. delete: function () {
8. // 获取当前顶部显示的号码
9. let tel = this.data.tel
10. // 如果不是空的,则去掉末尾一位
11. if (tel.length > 0) {
12. tel = tel.slice(0, tel.length - 1)
13. }
14. // 更新顶部电话显示
15. this.setData({
16. tel: tel
17. })
18. },
19. ...20. }

其中tel.slice(0, tel.length - 1)用的是JavaScript自带函数str.slice(start, end),表示重新截取字符串从start位到end位的一段内容,因此这里表示将字符串tel重新截取从第0位到倒数第二位的所有内容,即去掉了末尾一位字符。

修改后重新编译,随机按下任意一串电话号码再删除末尾3位的效果如图3-34所示。

■ 图3-34 阶段案例逻辑实现:监听删除按键

3)拨打电话

修改bohao.wxml代码,为拨号按键追加自定义点击事件call。

bohao.wxml相关代码修改如下:

复制代码
1. <!-- 1 整体容器 -->
2. <view class="container">
3. <!-- 2 顶部电话显示区域(内容略) -->
4. <!-- 3 中间数字键盘区域(内容略) -->
5. <!-- 4 底部按钮区域 -->
6. <view class="bottomBox">
7. <!-- 4-1 拨号按钮 -->
8. <image class="callImg" src="/images/call.png" bindtap="call"></image>
9. <!-- 4-2 删除按钮 -->
10. <image class="deleteImg" src="/images/delete.png" bindtap="delete"></image>
11. </view>
12. </view>

在bohao.js中追加自定义函数call,相关代码如下:

复制代码
1. // bohao.js
2. Page({
3. ...,
4. /**
5. * 自定义函数--监听打电话按键
6. */
7. call: function () {
8. // 获取联系电话
9. let tel = this.data.tel
10. // 给指定电话拨号(真机预览有效)
11. wx.makePhoneCall({
12. phoneNumber: tel
13. })
14. },
15. ...16. }

至此整个阶段案例就完成了,完整运行效果如图3-35所示。

■ 图3-35 第3章阶段案例最终效果图

本案例主要为了演示tabBar布局、列表布局以及九宫格布局,其中wx.makePhoneCall()实现的拨打电话功能属于小程序设备API中一项内容。

相关推荐
计算机程序设计小李同学2 小时前
婚纱摄影集成管理系统小程序
java·vue.js·spring boot·后端·微信小程序·小程序
幽络源小助理5 小时前
SpringBoot+小程序高校素拓分管理系统源码 – 幽络源免费分享
spring boot·后端·小程序
Mr -老鬼6 小时前
移动端跨平台适配技术框架:从发展到展望
android·ios·小程序·uni-app
内存不泄露7 小时前
棋牌预约小程序系统论文
小程序
说私域1 天前
短视频私域流量池的变现路径创新:基于AI智能名片链动2+1模式S2B2C商城小程序的实践研究
大数据·人工智能·小程序
毕设源码-邱学长1 天前
【开题答辩全过程】以 基于微信小程序的松辽律所咨询系统的设计与实现为例,包含答辩的问题和答案
微信小程序·小程序
+VX:Fegn08951 天前
计算机毕业设计|基于springboot + vue物流配送中心信息化管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·小程序·课程设计
说私域1 天前
B站内容生态下的私域流量运营创新:基于AI智能名片链动2+1模式与S2B2C商城小程序的融合实践
人工智能·小程序·流量运营
计算机毕设指导61 天前
基于微信小程序的钓鱼论坛系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
qq_12498707531 天前
基于微信小程序的宠物交易平台的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·微信小程序·小程序·毕业设计·计算机毕业设计