让后台重新生成模版ID,重新测试
微信小程序中已同意授权模板消息,但发送消息失败?用户已同意模板ID为 _8Zr5nrmQ6ed55NQRlJl9HpvyiUOtZOs-5-2lBNhz8s 的通知,但是微信却返回:用户拒绝接受消息
2020-12-28https://developers.weixin.qq.com/community/servicemarket/detail/000ce4cec24ca026d37900ed551415
ORC 识别失败, 报错:not enough market quota hint,https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/ocr/ocr.businessLicense.html 每天不是有免费配额吗, 如果现在没有免费配额了, 去哪里购买?文档里面什么都没说
2020-08-27装稳定版吧
开发者工具花屏 版本1.03.2004212 ?[图片] [图片] 总是莫名其妙的花屏, 我敢肯定我电脑没有问题, 只有开发者工具这样, 这软件是越升级BUG越多吗?
2020-04-22现在的消息订阅是一次性的,订阅一次发一次
小程序消息订阅https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html 我用消息订阅 连续推送三次消息 前两次可以接收 最后一个{"errcode":43101,"errmsg":"user refuse to accept the msg hint: [bFiB408544129]"}
2020-04-22为啥每天都有人遇到这个问题。。。。。。
pc端微信频繁闪退,提示“你的微信环境存在异常,为了账号安全,本次登录已失效 什么问题pc端微信频繁闪退,提示“你的微信环境存在异常,为了账号安全,本次登录已失效 什么问题 微信号15195586828
2020-04-21[图片]
哪位大神帮忙看看,我是哪里写错了吗?// pages/player/player.js const app = getApp().globalData const song = require('../../utils/song.js') const Lyric = require('../../utils/lyric.js') let watch; Page({ /** * 页面的初始数据 */ data: { playurl: '', playIcon : 'icon-play', cdCls: 'pause', currentLyric: null, currentLineNum : 0, toLineNum: 0, currentSong: null, dotsArray: new Array(2), currentDot: 0 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { console.log('onshow') this._init() this._getBackPlayfileName().then((res)=>{ const current = res.res.currentPosition this.data.currentLyric.stop() this.data.currentLyric.seek(current * 1000) }).catch(()=>{ }) }, // 初始化 _init: function () { let songlist = (app.songlist.length && app.songlist) || wx.getStorageSync('songlist') let currentSong = app.songlist[app.currentIndex] || (songlist && songlist[app.currentIndex]) let duration = currentSong && currentSong.duration this.setData({ currentSong: currentSong, duration: this._formaTime(duration), songlist: songlist, currentIndex: app.currentIndex }) this._getPlayUrl(currentSong.mid) this._getLyric(currentSong) }, // 获取北京播放音乐的songmidid _getBackPlayfileName: function() { return new Promise((resolve,reject) => { wx.getBackgroundAudioPlayerState({ success: function (res) { var dataUrl = res.dataUrl let ret = dataUrl && dataUrl.split('?')[0].split('/')[3] resolve({ret,res}) }, fail: function (e) { let ret = false reject(ret) } }) }) }, // 获取播放地址 _getPlayUrl: function (songmidid) { const _this = this wx.request({ url: 'https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?g_tk=5381&inCharset=utf-8&outCharset=utf-8¬ice=0&format=jsonp&hostUin=0&loginUin=0&platform=yqq&needNewCode=0&cid=205361747&uin=0&filename=C400${songmidid}.m4a&guid=3913883408&songmid=${songmidid}&callback=callback', data: { g_tk: 5381, inCharset: 'utf-8', outCharset: 'utf-8', notice:0, format:'jsonp', hostUin:0, loginUin:0, platform:'yqq', needNewCode:0, cid:205361747, uin:0, filename:'C400${songmidid}.m4a', guid:3913883408, songmid:songmidid, callback:'callback', }, success: function(res) { var res1 = res.data.replace("callback(","") var res2 = JSON.parse(res1.substring(0,res1.length - 1)) const playurl = 'http://dl.stream.qqmusic.qq.com/${res2.data.items[0].filename}?vkey=${res2.data.items[0].vkey}&guid=3913883408&uin=0&fromtag=66' _this._getBackPlayfileName().then((nowPlay) => { if(!(res2.data.items[0].filename === nowPlay.ret)){ _this._createAudio(playUrl) } }).catch((err) => { _this._createAudio(playUrl) }) } }) }, // 创建播放器 createAudio: function(playUrl) { wx.playBackgroundAudio({ dataUrl: 'playUrl', title:this.data.currentSong.name, coverImgUrl: this.data.currentSong.image }) // 监听音乐播放 wx.onBackgroundAudioPlay(() => { this.setData({ playIcon:'icon-pause', cdCls:'play' }) }) // 监听音乐暂停 wx.onBackgroundAudioPause(() => { this.setData({ playIcon:'icon-play', cdCls:'pause' }) }) // 监听音乐停止 wx.onBackgroundAudioStop(() => { app.currentIndex++ this._init() }) // 监听播放拿取播放进度 const manage = wx.getBackgroundAudioManager() manage.onTimeUpdate(() => { this.setData({ currentTime: this._formaTime(manage.currentTime), percent:manage.currentTime / this.data.currentSong.duration }) }) }, // 获取歌词 _getLyric: function(currentSong) { const _this = this this._getBackPlayfileName().then((res) => { const nowMid = res.ret.split('.')[0].replace('C400','') if(!(nowMid === currentSong.mid)){ if(this.data.currentLyric) { this.data.currentLyric.stop && this.data.currentLyric.stop() } _this._getLyricAction(currentSong) } }).catch(() => { _this._getLyricAction(currentSong) }) }, // 获取处理歌词 _getLyricAction: function (currentSong) { console.log('获取歌词') song._getLyric(currentSong.musicId).then((res) => { if(res.data.showapi_res_body.ret_code == 0) { const lyric = this._normalizeLyric(res.data.showapi_res_body.lyric) const currentLyric = new Lyric(lyric,this.handleLyric) this.setData({ currentLyric:currentLyric }) this.data.currentLyric.play() }else { console.log('无歌词') this.setData({ currentLyric: { lines: [{txt: '暂无歌词'}] }, currentText: '' }) } }) }, // 去掉歌词中的转义字符 _normalizeLyric: function (lyric) { return lyric.replace(/:/g, ':').replace(/ /g, '\n').replace(/./g, '.').replace(/ /g, '').replace(/-/g, '-').replace(/(/g, '(').replace(/)/g, ')') }, // 歌词滚动回调函数 handleLyric: function({lineNum,txt}) { console.log(lineNum) this.setData({ currentLineNum:lineNum, currentText: txt }) if (lineNum > 5) { this.setData({ toLineNum:lineNum - 5 }) } }, _formaTime: function (interval) { interval = interval | 0 const minute = interval / 60 | 0 const second = this._pad(interval % 60) return '${minute} : ${second}' }, /*秒前边加0 */ _pad(num, n = 2) { let len = num.toString().length while (len < n) { num = '0' + num len++ } return num }, prev: function() { if ((app.currentIndex - 1) < 0) { app.currentIndex = this.data.songslist.length - 1 this._init() return } app.currentIndex && app.currentIndex-- this._init() }, next: function() { if((app.currentIndex + 1) == this.data.songslist.length) { app.currentIndex = 0 this._init() return } app.currentIndex++ this._init() }, togglePlaying:function() { wx.getBackgroundAudioPlayerState({ success: function(res) { var status = res.status if (status == 1) { wx.pauseBackgroundAudio() } else { wx.playBackgroundAudio() } } }) let timer = setInterval(() => { if(this.data.currentLyric) { this.data.currentLyric.togglePlay() clearInterval(timer) } },20) }, openList: function() { if(!this.data.songslist.length) { return } this.setData({ translateCls : 'uptranslate' }) }, close: function() { this.setData({ translateCls: 'downtranslate' }) }, end: function() { console.log(2) }, playthis: function(e) { const index = e.currentTarget.dataset.index app.currentIndex = index this._init() this.close() }, changeDot: function(e) { this.setData({ currentDot: e.detail.current }) }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, }) [图片]
2020-04-21是实时的呀,开发者可不限时间地下发一条对应的服务消息,如果后台没有写延迟发送代码,就是实时的。
小程序一次订阅消息,用户收到消息时间是实时的吗?我们测试发现用户需要等5分钟,甚至十几分钟才收到订阅用户授权后,用户收到小程序订阅消息是实时的吗?我们测试发现用户需要等5分钟,甚至十几分钟才收到订阅消息提醒。
2020-04-21重装?
开发者工具一打开就被一片广告挡住, 还怎么用?[图片]
2020-04-21如果是之前可以调起,应该是点击总是允许或拒绝了。打开小程序设置点开消息订阅,如果没有点总是允许或拒绝,页面是这样的[图片],如果点过页面是这样的[图片],如果点过总是允许或拒绝,可以重新生产模版ID,然后就可以重新调起了
wx.requestSubscribeMessage 无法唤起弹窗?wx.requestSubscribeMessage 调用成功无法唤起弹窗?appid wx1a0fad7615f147d1 微信号 wawm04717 微信版本7.0.13 手机 小米青春版8 [图片][图片]
2020-04-21让后台写定时任务呀
订阅消息如何延后,比如我要在订阅后10分钟只有才下发订阅消息?一次性订阅消息 一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。 该文档中有说明,订阅后,可以不限时间的下发一条服务消息,那么怎么延后,比如我要在订阅后10分下发?
2020-04-20