Flutter接入IM后,点击事件消息回调触发的问题
最近在使用极光IM为APP增加一个聊天系统,APP是由Flutter写的,我用了一个Bloc来管理IM的一些封装方法,但是出现了一个不知道算不算是bug的情况。
//点击事件
jmessage.addClickMessageNotificationListener((msg) {
print('点击消息触发事件');
if (!_lock) {
_lock = true;
onOpenNotification(msg);
}
});
void onOpenNotification(dynamic msg){
if (msg != null) {
Widget page = pageRoute(msg);
if (page != null) {
_lock = false;
jumpPage(msg);
}
}
}
正常来说当用户点击消息回调时去执行一个页面跳转的方法,从而进入到和发送消息者的聊天界面。但是当我debug查看代码执行步骤时发现会自动跳过这个跳转的代码块,并结束这次的点击事件。如果我在这个执行跳转的方法里增加一个异步的声明的话,可以顺利跳转到对应的页面,但同时会出现一个bug,跳转的这个页面会被打开多次。当我debug查看执行步骤时发现,我只点击了一个消息提示,但是会同时调用了多次点击消息回调的监听事件,这个是属于我写的监听出了问题还是极光IM的Flutter库的一个小bug?求解答。