微信小程序点击选择拨打多个电话

微信小程序点击选择拨打多个电话

效果预览

在这里插入图片描述

wxml 内

<view class='product-contact' wx:if="{{contact!=''}}" data-contact1="{{contact1}}" data-contact2="{{contact2}}" catchtap='makeCall'>立即联系</view>

js 内

data: {
    contact: '123456,654321',
    contact1: '123456',
    contact2: ''
},
makeCall: function (e) {
    var phone1 = e.currentTarget.dataset.contact1, //手机号
        phone2 = e.currentTarget.dataset.contact2; //固话
    console.log('phone1:',phone1,',phone2:',phone2);
    if (phone1 && phone2 && phone1 != phone2) {
        console.log('两个电话均存在');
        wx.showActionSheet({
            itemList: [phone1, phone2],
            success(res) {
                if (res.tapIndex === 0) {
                    wx.makePhoneCall({
                        phoneNumber: phone1,
                        success: function () {
                            console.log('拨打电话成功' + phone1)
                        },
                        fail: function () {
                            console.log("拨打电话失败")
                        }
                    })
                } else if (res.tapIndex === 1) {
                    wx.makePhoneCall({ 
                        phoneNumber: phone2,
                        success: function () {
                            console.log('拨打电话成功' + phone2)
                        },
                        fail: function () {
                            console.log("拨打电话失败")
                        }
                    })
                }
            },
            fail(res) {
                console.log("拨打电话失败")
            }
        })
    } else if (phone1 && phone2 && phone1 === phone2) {
        console.log('两个电话相同');
        wx.showModal({
            content: "确认拨打" + phone2 + "吗",
            confirmColor: '#2EA7E0',
            success(res) {
                if (res.cancel) {
                    // 用户点击了取消属性的按钮 
                    return false
                } else if (res.confirm) {
                    wx.makePhoneCall({ //调用小程序拨打电话的api
                        phoneNumber: phone2, //获取到的电话号码
                        success: function () {
                            console.log('拨打电话成功')
                        },
                        fail: function () {
                            console.log("拨打电话失败")
                        }
                    })
                }
            }
        })
    } else if (!phone1 && phone2) {
        //弹出dialog弹出框
        console.log('一个电话存在');
        wx.showModal({
            content: "确认拨打" + phone2 + "吗",
            confirmColor: '#2EA7E0',
            success(res) {
                if (res.cancel) {
                    // 用户点击了取消属性的按钮 
                    return false
                } else if (res.confirm) {
                    wx.makePhoneCall({ //调用小程序拨打电话的api
                        phoneNumber: phone2, //获取到的电话号码
                        success: function () {
                            console.log('拨打电话成功')
                        },
                        fail: function () {
                            console.log("拨打电话失败")
                        }
                    })
                }
            }
        })
    } else if (!phone2 && phone1) {
        //弹出dialog弹出框
        console.log('一个电话存在');
        wx.showModal({
            content: "确认拨打" + phone1 + "吗",
            confirmColor: '#2EA7E0',
            success(res) {
                if (res.cancel) {
                    // 用户点击了取消属性的按钮 
                    return false
                } else if (res.confirm) {
                    wx.makePhoneCall({ //调用小程序拨打电话的api
                        phoneNumber: phone1, //获取到的电话号码
                        success: function () {
                            console.log('拨打电话成功')
                        },
                        fail: function () {
                            console.log("拨打电话失败")
                        }
                    })
                }
            }
        })
    } else if (!phone2 && !phone2) {
        console.log('两个电话均不存在');
        wx.showModal({
            content: "暂无联系电话",
            confirmColor: '#2EA7E0',
            showCancel: false, //不显示取消按钮
            success(res) {
                if (res.confirm) {
                    return false
                }
            }
        })
    }
}
### 微信小程序实现拨打多个电话功能 为了实现在微信小程序拨打多个电话的功能,可以创建一系列带有 `makePhoneCall` 方法的按钮。每个按钮对应不同的联系电话,并且可以在页面加载时动态生成这些按钮。 #### 创建联系人列表并遍历渲染 假设有一个包含不同联系人的数组,在页面初始化阶段可以通过数据绑定的方式将此数组传递到视图层: ```json { "contacts": [ {"name": "张三", "phone": "13800000001"}, {"name": "李四", "phone": "13800000002"} ] } ``` 在 WXML 文件里利用 `wx:for` 指令循环展示每一个联系人及其对应的拨号按钮[^1]: ```xml <view class="contact-list"> <block wx:for="{{contacts}}" wx:key="index"> <button type="primary" bindtap="callPhone" data-phone="{{item.phone}}"> {{item.name}} ({{item.phone}}) </button> </block> </view> ``` #### 定义 callPhone 函数处理点击事件 接着定义 JavaScript 中的方法来响应用户的点击行为,这里需要注意的是要获取当前被点击元素所携带的数据属性 `data-phone` 来确定具体要拨打哪个号码: ```javascript Page({ data: { contacts: [ { name: '张三', phone: '13800000001' }, { name: '李四', phone: '13800000002' } ] }, callPhone(e) { const phoneNumber = e.currentTarget.dataset.phone; wx.makePhoneCall({ phoneNumber, // 要拨打电话号码 success(res){ console.log('成功拨打电话'); }, fail(err){ console.error('拨打电话失败:', err); } }); } }); ``` 这样就完成了在一个页面上显示多个人物头像以及相应联系方式,并允许用户选择任意一个人进行呼叫的功能实现了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天外来鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值