小程序
小游戏
企业微信
微信支付
扫描小程序码分享
在onshow中调用socket.onMessage(),每打开一次页面,就算关闭当前页面,再次进入,会多次执行。
操作步骤:
1、 点击首页 进入 B页面 ,点击,第一次正常
2、关闭页面返回首页, 再次重复1操作,onshow中的socketTask.onMessage()回调会执行两次
3、每重复一次1,2,onshow中的socketTask.onMessage()回调会多执行一次
代码片段
https://developers.weixin.qq.com/s/5bb0pjm17rh6
5 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
要解决这个问题很简单
// 监听返回的这个方法绑定一次即可
socket.onMessage(res => {
// 全局的方法
that.gData.msgBack(res)
})
这样在任何页面 socket.send之前 先重新定义一下 that.gData.msgBack = function(res){....即可}
that = this, gData是全局变量,不是当前页的
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
socketTask.onMessage(res => getApp.onMessage(res));
socketTask.onMessage(getApp.onMessage)
请问有遇到过, 从消息通知中点击跳转到小程序中, 第三方服务的 socket 连接似乎有问题, 报这个错误. 有否办法解决?
请问解决了吗 怎么解决的啊
我也发现了,即使A页面已经onUnload,A页面的onMessage会重复执行;随着onUnload次数增加,重复次数增加
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
要解决这个问题很简单
// 监听返回的这个方法绑定一次即可
socket.onMessage(res => {
// 全局的方法
that.gData.msgBack(res)
})
这样在任何页面 socket.send之前 先重新定义一下 that.gData.msgBack = function(res){....即可}
that = this, gData是全局变量,不是当前页的
socketTask.onMessage(res => getApp.onMessage(res));
socketTask.onMessage(getApp.onMessage)
that.globalData.backmsg= (res) => {
console.log( res.data);
// 在这里处理接收到的消息,根据业务需求进行相应操作
}
socket.onMessage(res=>{
that.globalData.backmsg(res)
})
globalData: {
backmsg:null,
}
业务页面
onReady: function () {
app.globalData.backmsg=function(res){
console.log(JSON.parse(res.data))
}
}
代码就这样,说明一下,当打开业务页面之后websocket消息回调绑定到了业务页面。关闭还是在上次打的业务页面执行。再多次进出入该页面,全局也只会有一个onMassage监听事件现运行。如果要多业务页面分别执行的话,目前我是重置websocket再执行其它的页面功能。不关闭就会出现多监听事件,就算不行重置也最多5个逻辑页面。
请问有遇到过, 从消息通知中点击跳转到小程序中, 第三方服务的 socket 连接似乎有问题, 报这个错误. 有否办法解决?
请问解决了吗 怎么解决的啊
我也发现了,即使A页面已经onUnload,A页面的onMessage会重复执行;随着onUnload次数增加,重复次数增加
麻烦提供出现问题的具体机型、微信版本号、系统版本号,以及能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)