jmessage-react-plugin icon indicating copy to clipboard operation
jmessage-react-plugin copied to clipboard

根据源码中的example在开发过程中遇到的几个问题

Open robinjl opened this issue 7 years ago • 13 comments

您好,我在项目中根据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无法加载接收到的信息

其他建议

我觉得应该提供一个获取所有群组信息的接口,目前我是通过getGroupIdsgetGroupInfo获取多个群组列表的,因为id列表并不是针对用户的。

期待您的回复!

robinjl avatar Nov 13 '17 08:11 robinjl

@robinjl React Native 的 Image 组件无法直接显示应用包名下的图片。此外,你进入会话时,应该调用 enterConversation,这样就不会有通知出现。可以参考我们的官网文档。https://docs.jiguang.cn/jmessage/client/im_sdk_android/ 我们的插件用的还是原生的 SDK,只是封装了接口。

KenChoi1992 avatar Nov 13 '17 08:11 KenChoi1992

@KenChoi1992 感谢您的回复,麻烦能给出详细些的说明吗?

  1. Image 组件如何显示应用包名下的图片,请给一个参考或提示; 另外iOS上传图片后,是报错的 error {code: 1, description: "param error!"}
  2. enterConversation 这个问题解决了,但是出现的问题同 #24
  3. 再请问一个问题,复现如下:(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 avatar Nov 14 '17 03:11 robinjl

@robinjl

  1. 显示本地路径的图片可以参考 demo
  2. 上传图片具体是哪个接口, 另外路径中不要 file:// 这个前缀。
  3. 消息和会话的处理 也建议参考 demo.

huangminlinux avatar Nov 14 '17 06:11 huangminlinux

@robinjl Image 组件不能显示包名下的图片,你可以把图片的路径放到 sd 卡,然后再显示。至于第二个问题我回复了 #24 。第三个问题,你在聊天界面收到消息时,需要判断消息是否属于这个会话,如果是,才展示,否则不展示。

KenChoi1992 avatar Nov 14 '17 09:11 KenChoi1992

  1. 图片路径问题通过react-native-fs能够临时解决
  2. 接收信息判断,我是通过传递extras判断的,demo中的代码没有错,可是我调试的时候message.target.type 始终都是'user'
  3. 其它关系到原生的问题我还没有能力解决

robinjl avatar Nov 17 '17 08:11 robinjl

Could not invoke JMessageModule.setup react-native 集成出现这个是什么问题

xiao872380658 avatar Mar 16 '18 03:03 xiao872380658

Could not invoke JMessageModule.setup react-native 集成出现这个是什么问题

bighaohao avatar Jun 07 '18 14:06 bighaohao

@bighaohao 是 android 还是 ios 出现的问题?

huangminlinux avatar Jun 12 '18 02:06 huangminlinux

凉了

YJH94 avatar Aug 15 '18 05:08 YJH94

@xiao872380658 我安卓集成时出现了这个问题,原因是自动link的时候,jcore-react-native自动link不成功,需要手动添加一下。

quietautumn avatar Aug 16 '18 07:08 quietautumn

你使用的插件版本是什么,iOS 和 Android 表现一致吗,请提供原生 log @JohnTree

JoshLipan avatar Nov 23 '18 02:11 JoshLipan

请提供原生log,上面这个并没有极光的log,抓log前先开启debug模式

JoshLipan avatar Nov 23 '18 03:11 JoshLipan

@robinjl

  1. 显示本地路径的图片可以参考 demo
  2. 上传图片具体是哪个接口, 另外路径中不要 file:// 这个前缀。
  3. 消息和会话的处理 也建议参考 demo.

那对于音频文件,同样是没有扩展名的(修改文件扩展名后可以直接打开播放),有什么办法可以播放这样的无扩展名的音频文件吗?我目前使用一些开源库是可以直接播放在线的音频文件的,但直接取到本地文件路径是没办法播放的,有什么解决方案吗?

hiscc avatar Feb 03 '20 03:02 hiscc