小程序仿微信聊天按住说话功能
实现:按住说话有录音动画,上滑可取消发送,松开发送录音
录音授权判断
# .wxml
<view class="btn {
{touchBtn?'hoverBtn':''}}" catch:touchend="onTouchEnd" bind:touchstart="record"
bind:longpress="onLongpress" catch:touchmove="onTouchMove">{
{touchBtn?'松开 结束':'按住说话'}}</view>
复制代码
// # ontouchstart
record() {
const scopeRecord = app.globalData.scopeRecord;
// 无授权时获取授权
if (!scopeRecord) {
getScopeRecord();
return;
}
this.data.touched = true;
// 触发父组件录音事件,由父组件调用录音API
this.triggerEvent('startRecord')
},
复制代码
上滑取消发送,利用滑动距离判断是否取消,
onTouchMove(e) {
if (e.touches[0].clientY < 520) {
// # 取消发送
this.data.cancelRecord = true;
wx.showToast({
title: '松开,取消发送',
duration: 10000,
image: '/page/common/resource/image/cancel.png'
})
} else {
//