jmessage-react-plugin
jmessage-react-plugin copied to clipboard
根据源码中的example在开发过程中遇到的几个问题
您好,我在项目中根据example源码进行了开发调试,其中遇到了几个问题:
环境配置如下:
"react-native": "0.47.1",
"aurora-imui-react-native": "^0.4.21",
"jcore-react-native": "^1.1.8",
"jmessage-react-plugin": "^2.1.0",
"jpush-react-native": "^2.0.7"
1. 头像路径问题
(1)android studio emulator 环境
通过react-native-image-picker组件上传图片,返回路径及调用updateMyAvatar接口参数格式为 "/storage/emulated/0/Android/data/com.miningapp.debug/files/Pictures/image-3268b271-76dd-44bf-8f16-cc22d3338d31.jpg",上传成功后
调用getMyInfo 返回路径(avatarThumbPath)为
"/data/user/0/com.miningapp.debug/files/images/small-avatar/C9546535D771E93207E22613DBE56A50"
在aurora-imui-react-native插件的MessageList里可以正常显示头像,但是在<Image source={{isStatic: true, uri: this.state.myInfo.avatarThumbPath, scale: 1}} style={styles.avatar}> </Image>
无法显示
(2) Android 真机与emulator类似
(3)iOS Xcode Simulator
上传图片参数:
"file:///Users/robin/Library/Developer/CoreSimulator/Devices/9B65E4DD-4499-4B70-AB9C-769C2C2D6E77/data/Containers/Data/Application/2F50588E-19DB-443D-862B-A42F6E9FB676/tmp/5B450D32-A2A5-4DF6-A6B0-CBD54E7951EF.jpg"
返回结果:error {code: 1, description: "param error!"}
(4) iOS 真机没有测试
请问应该如何解决?
2. 推送问题
调用receiveMessageCallBack接口,可以在MessageList中显示对话信息,如果此时正处于聊天界面,自然合理,但是影响体验的是它同时会在通知栏产生推送。合理的体验应该是App处于前台时,应该正常在MessageList中加载信息,而不需要在通知栏中推送,而如果当前不是聊天页面时应产生通知栏推送,并且可以点击跳转。 因为我还使用了JPush,所以在调试中了解到JPush和JMessage互不干扰,在JPush中有监听推送和点击消息的接口,在JMessage中好像并没有此类接口。所以您认为应该如何处理更好,或者会在以后的版本中完善吗? 另外,在Example中源码中receiveMessageCallBack里的判断好像是不必要的,因为会导致MessageList无法加载接收到的信息
其他建议
我觉得应该提供一个获取所有群组信息的接口,目前我是通过getGroupIds和getGroupInfo获取多个群组列表的,因为id列表并不是针对用户的。
期待您的回复!
@robinjl React Native 的 Image 组件无法直接显示应用包名下的图片。此外,你进入会话时,应该调用 enterConversation,这样就不会有通知出现。可以参考我们的官网文档。https://docs.jiguang.cn/jmessage/client/im_sdk_android/ 我们的插件用的还是原生的 SDK,只是封装了接口。
@KenChoi1992 感谢您的回复,麻烦能给出详细些的说明吗?
- Image 组件如何显示应用包名下的图片,请给一个参考或提示; 另外iOS上传图片后,是报错的 error {code: 1, description: "param error!"}
- enterConversation 这个问题解决了,但是出现的问题同 #24
- 再请问一个问题,复现如下:(1)创建一个Group, 包括A、B两个member, 再创建一个A、B之间的私人会话; (2) A登录手机一,进入group聊天界面, B登录手机二,进入私人聊天界面 (3)A在群里发送消息,B 却在私人聊天里接收信息 (4)B退出会话,重新进入群组聊天或私人聊天恢复正常 日志: A发送信息 sendTextMessage target.type 是group,问题是B接收信息addReceiveMessageListener target.type 始终是 user,问题出现在哪里呢?
@robinjl Image 组件不能显示包名下的图片,你可以把图片的路径放到 sd 卡,然后再显示。至于第二个问题我回复了 #24 。第三个问题,你在聊天界面收到消息时,需要判断消息是否属于这个会话,如果是,才展示,否则不展示。
- 图片路径问题通过react-native-fs能够临时解决
- 接收信息判断,我是通过传递extras判断的,demo中的代码没有错,可是我调试的时候message.target.type 始终都是'user'
- 其它关系到原生的问题我还没有能力解决
Could not invoke JMessageModule.setup react-native 集成出现这个是什么问题
Could not invoke JMessageModule.setup react-native 集成出现这个是什么问题
@bighaohao 是 android 还是 ios 出现的问题?
凉了
@xiao872380658 我安卓集成时出现了这个问题,原因是自动link的时候,jcore-react-native自动link不成功,需要手动添加一下。
你使用的插件版本是什么,iOS 和 Android 表现一致吗,请提供原生 log @JohnTree
请提供原生log,上面这个并没有极光的log,抓log前先开启debug模式