报BUG:使用极光IM小程序sdk,检测到断线后重新登陆一直返回超时

leemin
2019-11-18 08:32 657 0

null

```
// 创建极光IM实例
export function NewJIM() {
console.log('【new JIM】')
//挂载到VUE上
// VUE.prototype.$JIM = new JMessage({
// debug: false
// })
//挂载到app上
getApp().globalData.$JIM = new JMessage({
debug: false
})
OnDisconnectJIM()
}
// 异常断线监听
export function OnDisconnectJIM() {
getApp().globalData.$JIM.onDisconnect(function() {
console.log('<----极光IM断线监听---->')
//ErrorLogService.AddLog('极光IM断线','OnDisconnectJIM','jmessage.js')
if (process.env.NODE_ENV === 'development') {
uni.showToast({
title:'检测到极光IM断线',
icon: 'none'
})
}
if(store.getters.appStatus != 'hide' && !store.getters.jimConnecting && store.getters.hasLogin){//监听收到 disconnect 事件后重新进行初始化和登录
ReInitJIM()
}
})
}

export function ReInitJIM(){
store.commit('updateJimConnecting',true)
if (process.env.NODE_ENV === 'development') {
uni.showToast({
title:'尝试重新连接极光IM...',
icon: 'none'
})
}
//ErrorLogService.AddLog('尝试重新连接极光IM','ReInitJIM','jmessage.js')
InitJIM().then(() => {
console.log('<----断线后再次初始化成功---->')
//ErrorLogService.AddLog('断线后再次初始化成功','ReInitJIM','jmessage.js')
if (process.env.NODE_ENV === 'development') {
uni.showToast({
title:'重新连接极光IM成功',
icon: 'none'
})
}
ReLoginJIM()
}).catch(() => {
console.log('<----断线后再次初始化失败---->')
//ErrorLogService.AddLog('断线后再次初始化失败','ReInitJIM','jmessage.js')
if (process.env.NODE_ENV === 'development') {
uni.showToast({
title:'重新连接极光IM失败',
icon: 'none'
})
}
if(store.getters.appStatus != 'hide'){
setTimeout(function(){
ReInitJIM()
},1500)
}else{
store.commit('updateJimConnecting',false)
}
})
}

function ReLoginJIM(){
//ErrorLogService.AddLog('尝试重新登陆极光IM','ReLoginJIM','jmessage.js')
if (process.env.NODE_ENV === 'development') {
uni.showToast({
title:'尝试重新登陆极光IM...',
icon: 'none'
})
}
LoginJIM().then(function() {
console.log('<----断线后再次登陆成功---->')
//ErrorLogService.AddLog('断线后再次登陆成功','ReLoginJIM','jmessage.js')
if (process.env.NODE_ENV === 'development') {
uni.showToast({
title:'重新登陆极光IM成功',
icon: 'none'
})
}
store.commit('updateJimConnecting',false)
}).catch(() => {
console.log('<----断线后再次登陆失败---->')
//ErrorLogService.AddLog('断线后再次登陆失败','ReLoginJIM','jmessage.js')
if (process.env.NODE_ENV === 'development') {
uni.showToast({
title:'重新登陆极光IM失败',
icon: 'none'
})
}
if(store.getters.appStatus != 'hide'){
setTimeout(function(){
ReLoginJIM()
},1500)
}else{
store.commit('updateJimConnecting',false)
}
})
}

1个回答

热门排序
  • 先阅读小程序使用的建议https://community.jiguang.cn/article/96070jmessage-wxapplet-sdk-1.4.2.zip|attachment (24.6 KB)用这个最新版本测试 展示全部