使用webman-push在PC端正常,在uniapp会出现当前页面进入连接正常,离开页面返回后不正常
这里写描述
uniapp端使用onshow进入页面每次连接
onhide离开页面关闭连接
但是在本页面点击按钮离开时调用navigateTo
返回使用navigateBack
这个时候onshow能进入 new push也有新连接 但是就是频道通知无法接受到
onShow() {
this.setSockt()
}
const setSockt = () => {
// console.log(1)
// 建立连接
data.connection = new Push({
url: 'wss://省略', // websocket地址
app_key: '此处省略',
auth: '/plugin/webman/push/auth', // 订阅鉴权(仅限于私有频道)
})
// console.log(data.connection)
// 浏览器监听user-1频道的消息,也就是用户uid为1的用户消息
data.room_channel = data.connection.subscribe('CHANNEL_ROOM-' + data.shopId)
data.room_clear = data.connection.subscribe('CHANNEL_ROOM_ALL-' + data.shopId)
// 当user-1频道有message事件的消息时
data.room_channel.on('message', res => {
// console.log(res.content);
if (res.content === 'CHANNEL_QUEUE') {
// getLineList()
} else {
const obj = JSON.parse(res.content)
handleData(obj)
}
})
data.room_clear.on('message', res => {
if (res.content === 'CHANNEL_ROOM_ALL') {
getData()
}
})
}
是因为页面没有强制刷新导致连接没有连接成功吗
我帮你格式化下代码,不然这破格式别人本来想帮你解决的都看不下去
mark
uniapp 我是放在app.vue里面的,整个app都可以,不然问题挺多。大佬教的
@Doogeli 大哥你是怎么放的push-uniapp.js,能发一下吗?我也遇到问题了
升级最新版吧。之前的版本IOS进入没法联到,升级后就可以了。在APP.VUE里面加载,然后在onlaunch写上websocket连接,这样全局调用就可以了
离开的生命周期进入正常吗?uniapp的离开生命周期仅支持原本的导航,不支持自定义导航噢。如果是自定义导航则离开页面生命周期失效,需要自行监听