- ios端,canvas不能生成文字样式?
代码片段:https://developers.weixin.qq.com/s/Eh6fvfma7Wut 在画板上绘制文字,安卓端实测没问题,但是ios端不能生成绘画出文字。不知道是不是bug,还是哪里没写对。 [图片]
2021-10-22 - 个人日记类小程序改如何修改,才能通过审核?
不通过原因: 1: 你好,你的小程序涉及用户自行生成内容(文字、图片、音/视频)的记录、分享,属社交-笔记范畴,为个人主体小程序未开放类目,建议申请企业主体小程序。 [图片] 问:现在做的是个人日记小程序,之前版本有社交功能。现在想知道如果将社交功能,做成单单个人能看到自己的日记小程序这种,普通个人开发者是否可以通过?不通过需要怎么修改?
2021-04-15 - 公众号被诈骗APP诱导用户关注怎么办?
是这样,最近公众号突然增加粉丝数量异常。后来从用户中得知,公众号被诈骗APP诱导关注,称关注有红包。请问我应该怎么办?
2021-04-03 - 为什么match里使用or不生效?
调用的js [图片] 云函数: [图片] 直接指定可以: _openid: 'o5N_v0CGzgjKHVNckJCh_bTZsvsQ' 希望用or(不生效) _openid:_.or( _.eq('o5N_v0CGzgjKHVNckJCh_bTZsvsQ'), _.eq('1o5N_v0CGzgjKHVNckJCh_bTZsvsQ'))
2021-01-20 - 小程序云开发 “ _ is not defined ” ,应该怎么做?
云函数 [图片] js调用 [图片] 程序报错“ _ is not defined”,如果match那段放到云函数那里是可以运行的,但是我想单独放出来更加灵活,不知道应该怎么定义呢?
2021-01-20 - 为什么我微信号改不了?
公众号修改微信号遇到BUG,我想微信号改成“heizicao”,明明没有公众号的id是这个,但是就是改不了,如果搜索会出现另外一个ID的公众号被占用。 [图片][图片]
2020-12-27 - 求助RecorderManager录音自写计时有问题,真机调试暂停时间后计时会双倍?
求助RecorderManager录音自写计时有问题,暂停后时间会双倍还有一个问题就是删除后重新开始 菜鸟求指点!!! //js let RM = wx.getRecorderManager(); const innerAudioContext = wx.createInnerAudioContext() var timer; Page({ /** * 页面的初始数据 */ data: { url: '', start: true, pause: false, resume: false, stop: false, play: false, complete: false, delete: false, times: '0min 0s', }, /** * 生命周期函数--监听页面加载 */ onLoad: function () {}, onShow: function () { RM.stop(); }, //开始录音 onStart: function () { wx.showToast({ title: '开始录音', icon: 'none' }) this.setData({ start: false, pause: true, stop: true, delete: false, complete: false }) let option = { duration: 600000, // 10 minutes sampleRate: 48000, numberOfChannels: 2, encodeBitRate: 320000, format: 'mp3' //录音的格式,有aac和mp3两种 } RM.start(option); RM.onStart(() => { console.log('录音开始事件'); Countdown(this); //开始计时 }); RM.onError((res) => { console.log('recorder出错:' + res); console.log(res); clearTimeout(timer); //出错时停止计时 }) }, //暂停录音 onPause: function () { wx.showToast({ title: '暂停录音', icon: 'none' }) this.setData({ pause: false, resume: true }) RM.pause(); RM.onPause(() => { console.log('录音暂停事件'); clearTimeout(timer); }) }, //继续录音 onResume: function () { var that = this; wx.showToast({ title: '继续录音', icon: 'none' }) this.setData({ pause: true, resume: false }) RM.resume(); RM.onResume(() => { console.log('录音继续事件') Countdown(that); //开始计时 }) }, //结束录音 onEnd: function () { wx.showToast({ title: '结束录音', icon: 'none' }) RM.stop(); RM.onStop((res) => { clearTimeout(timer); this.setData({ pause: false, resume: false, stop: false, complete: true, delete: true, }) console.log(res) // res.tempFilePath;//是临时的文件地址 //res.duration;//录音的时长 // res.fileSize;//文件的大小 this.data.url = res.tempFilePath; }) }, //删除录音 delete: function () { var that = this wx.showModal({ title: '提示', content: '确定要删除此录音吗?', success: function (res) { if (res.confirm) { that.setData({ times: '0min 0s', start: true, pause: false, resume: false, stop: false, play: false, complete: false, delete: false, }) } else if (res.cancel) { return false; } } }) }, //保存 complete: function () { wx.showLoading({ title: '上传中', }); var filePath = this.data.url; var cloudPath = '' const name = Math.random() * 1000000; if (filePath) { cloudPath = name + filePath.match(/\.[^.]+?$/)[0] } wx.cloud.uploadFile({ filePath, cloudPath, success: res => { this.setData({ play: true, complete: false, delete: false }) }, fail: e => { console.error('上传失败:', e) }, complete: () => { wx.hideLoading() wx.showToast({ title: '已保存,可以播放', icon: 'none' }) } }) }, //播放录音 onPlay: function () { wx.showToast({ title: '播放录音', icon: 'none' }) innerAudioContext.autoplay = true innerAudioContext.src = this.data.url, innerAudioContext.onPlay(() => { console.log('开始播放') }) innerAudioContext.onError((res) => { console.log(res.errMsg) console.log(res.errCode) }) console.log(); }, }) // 计时 var secondes = 0; function Countdown(that) { timer = setTimeout(function () { console.log("----secondes----" + formatSeconds(secondes)); secondes++; if (secondes >= 600) { RM.stop(); clearTimeout(timer); } that.setData({ times: formatSeconds(secondes) }); Countdown(that); }, 1000); }; // 处理时间 function formatSeconds(value) { var secondTime = parseInt(value); // 秒 var minuteTime = 0; // 分 if (secondTime > 60) { //如果秒数大于60,将秒数转换成整数 //获取分钟,除以60取整数,得到整数分钟 minuteTime = parseInt(secondTime / 60); //获取秒数,秒数取佘,得到整数秒数 secondTime = parseInt(secondTime % 60); //如果分钟大于60,将分钟转换成小时 } var result; if (minuteTime <= 0) { result = secondTime + 's'; } else { result = minuteTime + 'min ' + secondTime + 's'; } return result; } //wxml <view class="bg"> <text class="time">{{times}}</text> <input class="title" placeholder="输入录音标题" placeholder-style="color:#ffffff;" value="{{rm_title}}"></input> <image class="play icon" src="../../images/play.png" bindtap="onStart" wx:if="{{start}}">开始</image> <image class="pause icon" src="../../images/pause.png" bindtap="onPause" wx:if="{{pause}}">暂停</image> <image class="resume icon" src="../../images/play.png" bindtap="onResume" wx:if="{{resume}}">继续</image> <image class="stop icon" src="../../images/stop.png" bindtap="onEnd" wx:if="{{stop}}">结束</image> <image class="play icon" src="../../images/play.png" bindtap="onPlay" wx:if="{{play}}">播放</image> <image class="delete icon" src="../../images/delete.png" bindtap="delete" wx:if="{{delete}}">删除</image> <image class="complete icon" src="../../images/complete.png" bindtap="complete" wx:if="{{complete}}">完成</image> </view>
2020-12-05 - 怎么实现hidden显示隐藏达到渐变的效果?
通过滑动控制hidden隐藏和显示,但是过于僵硬,怎么实现hidden显示隐藏达到渐变的效果?
2020-09-24 - 【微信版本更新】为什么公众号滑动模块失效?
[图片][图片] 图一是手机上查看的(微信最新版),图二是电脑端。由于微信之前的更新,滑块组件好像失效了,但是电脑端看是没问题的,用微信读书看也是没问题,就是最新版微信有问题,问题已经持续有很长一段时间了,之前也投诉过但一直没回应?请问以后都不能用这种滑块了吗?
2020-08-05 - 分页使用concat连接后,为什么不能刷新数据?
const db = wx.cloud.database() db.collection("book_list") .where({ tag: options.id }) .skip(skip) .get({ success: res => { this.skip +=20 this.data.list = this.data.list.concat(res.data) this.setData({ list : this.data.list, sort: options.id, }) console.log('借阅情况',res.data[0].borrow) }, fail: err => { console.log(err) } }) 使用contact连接分页后,改变数据了(点击跳转到另一个页面改变数据)使用onshow不能更新数据,使用下拉刷新也不可以(可以分页,不能更新被改数据)。如果不用contact会改变显示数据,但分页要用到contact,想问问怎么样才能分页下拉刷新更新数据。
2020-06-22