Giter VIP home page Giter VIP logo

jpush / aurora-imui Goto Github PK

View Code? Open in Web Editor NEW
5.7K 182.0 1.0K 11.2 MB

General IM UI components. Android/iOS/RectNative ready. 通用 IM 聊天 UI 组件,已经同时支持 Android/iOS/RN。

Home Page: https://docs.jiguang.cn

License: MIT License

Java 56.71% Swift 27.81% C 0.03% JavaScript 7.23% Objective-C 8.10% Python 0.13%
ui-components instant-messaging android-component ios-component imui react-native

aurora-imui's Introduction

tag support QQ Group

Aurora IMUI

中文文档

Aurora IMUI is a general IM UI components library, which does not depend on any specific IM SDK.

This library provides common UI components such as MessageList, InputView. It supports common message type, such as text, image, audio, video, etc. By default it has several UI style for choice, and also supports style customization.

We already have Android/iOS/React Native platforms support.

Already supports three main platforms: Android, iOS, React Native.

Please refer to aurora-imui-examples for more examples.

       IMUI

Features

With Aurora IMUI, you can implement these features easily:

  • Displaying message list:
    • supports different message types;
    • supports click & long click events for each type of message;
    • supports user avatar.
  • Message input:
    • supports multiple message types;
    • voice input component;
    • photo album selection component;
    • record video or take picture using camera.

Currently support for display and input message types:

  • Text
  • Image
  • Voice
  • Video
  • Custom

Usage

Ready components:

Android

iOS (Swift)

React Native

Contribute

Welcome contribution! Look at the issues.

License

MIT © JiGuang

aurora-imui's People

Contributors

cchitsiang avatar fgrass avatar huangminlinux avatar hyhsuper avatar joshlipan avatar kenchoi1992 avatar lhw5123 avatar lijunzz avatar linxueyuanstdio avatar pikacode avatar trustdec avatar ufbeans avatar xiaosongfu avatar zachgenius avatar zhiw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aurora-imui's Issues

消息发送失败重发

开发人员好!可以支持消息发送失败后,点击重发消息吗?就像 QQ 那些那样

消息数据的处理等

项目介绍中描述中 Aurora IMUI 是个通用的即时通讯(IM)UI 库。
请问在消息数据处理方面你们是怎么考虑的,比如图片格式和尺寸、音视频的编码格式等。
这些方面会涉及到吗?就目前的项目来说对这方面的支持不太灵活。

另外,在接收消息后插入到聊天列表的时也是比较麻烦的。因为接收到消息数据时,像一些图片资源肯定没有下载到本地。比如:列表中图片的加载、视频首帧的加载、用户头像的加载,目前还仅能从沙盒中读取文件数据而不能通过图片异步加载库进行加载。
再比如,在IM聊天中视频文件的下载一般会在用户点击视频消息后才开始执行的,所以视频的第一帧图片肯定不能从本地视频文件中获取。

我看了目前的项目,感觉大部分功能的出发点为本地发送消息,而接收消息方面的数据处理是比较弱的。

我是iOS开发者。本项目已经给我带来了相当多的便利。感谢。

求尽快支持 RN

我理解支持 RN 只需要把原生组件包一层给 js 用,可否尽快支持呢,我等这种组件等了好久好久,终于有人做了这件事快哭了!

此外,是否有群聊的计划呢,包括群聊的设置,会话内的一些消息通知,比如谁进来了,谁被踢了,群名字、群公告被修改了,类似微信的交互已经养成了广大的用户习惯,希望能尽量支持。

万分感谢!

ImageLoader

Android中ImageLoader接口中只有头像的方法能用,图片消息的方法不起作用(PhotoViewHolder中好像只设置了头像的回调方法,没设置图片消息的)

相机问题

相机在vivo x_shot 手机上 出现点击相机直接程序退出运行
FATAL EXCEPTION: main
Process: imui.jiguang.cn.imuisample.dev, PID: 19357
java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.widget.FrameLayout$LayoutParams
at android.widget.FrameLayout.onMeasure(FrameLayout.java:311)
at android.view.View.measure(View.java:16552)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5130)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16552)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5130)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16552)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5130)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1052)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:590)
at android.view.View.measure(View.java:16552)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:719)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:455)
at android.view.View.measure(View.java:16552)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5130)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16552)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5130)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16552)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5130)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2338)
at android.view.View.measure(View.java:16552)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1965)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1132)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1314)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1019)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5743)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:791)
at android.view.Choreographer.doCallbacks(Choreographer.java:596)
at android.view.Choreographer.doFrame(Choreographer.java:565)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:777)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5113)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:780)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:596)
at dalvik.system.NativeStart.main(Native Method)

在oppo R9sk 上面出现相机切换为前置摄像头直接卡死
05-17 14:00:15.339 12922-12933/imui.jiguang.cn.imuisample.dev E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
java.lang.Throwable: Explicit termination method 'release' not called
at dalvik.system.CloseGuard.open(CloseGuard.java:180)
at android.view.Surface.setNativeObjectLocked(Surface.java:459)
at android.view.Surface.(Surface.java:145)
at cn.jiguang.imui.chatinput.camera.CameraNew.createCameraPreview(CameraNew.java:179)
at cn.jiguang.imui.chatinput.camera.CameraNew$6.onCaptureCompleted(CameraNew.java:364)
at java.lang.reflect.Method.invoke(Native Method)
at android.hardware.camera2.dispatch.InvokeDispatcher.dispatch(InvokeDispatcher.java:39)
at android.hardware.camera2.dispatch.HandlerDispatcher$1.run(HandlerDispatcher.java:65)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:179)
at android.os.HandlerThread.run(HandlerThread.java:61)

自定义界面样式

根据你教程我自定义了MyTxtViewHolder 然后
MsgListAdapter.HoldersConfig holdersConfig = new MsgListAdapter.HoldersConfig();
holdersConfig.setSenderTxtMsg(MyTxtViewHolder.class, R.layout.item_my_send_text);
控制台出现以下错误信息
Error:(157, 54) 错误: 不兼容的类型: Class无法转换为Class<? extends BaseMessageViewHolder<? extends IMessage>>
而MyTxtViewHolder extends BaseMessageViewHolder implements MsgListAdapter.DefaultMessageViewHolder 可以说是参考一下 messages 文件夹下的 TxtViewHolder类 麻烦dalao帮我看看这是什么问题

ios 录制的 aac 文件 在 Android 上不能播放

我发现 iOS 录制的 aac 文件 可以在 iOS 播放 但是在 Android 中就不能, 但是 Android 录制的 aac 文件在 Android 和 iOS中都可以, 我分析了下这俩个文件的信息发现 format 格式不对, 请问这个是怎么解决的:

Uploading image.png…

library not found for -lReact

react-native版本:0.38

编译环境:xcode8.2.1

错误信息:

ld: library not found for -lReact

clang: error: linker command failed with exit code 1 (use -v to see invocation)

添加长按手势

希望添加长按信息的delegate方法,还有keyboardWillShow里面貌似scrollToBottom没有用?是否可以考虑显示feature view时添加个delegate方法(也许可以和keyboardWillShow统一?因为都是屏幕下方显示一个东西),因为显示feature view时会挡住最下面的信息

iOS版本提示 Use of undeclared type 错误

我是按照这个教程来做的。
在StoryBoard里面添加了两个View,并分别把这两个View的class改为IMUIMessageCollectionView以及IMUIInputView,然后在 Controller里面连接好@IBOutlet后,出现Use of undeclared type 'IMUIMessageCollectionView'以及Use of undeclared type 'IMUIInputView'错误。
我搜索了一下貌似是命名错误,但是我用官方iOS目录下的IMUIChat却可以运行起来。请问这种情况是不是CocoaPods哪里没设置好吗?

.DS_Store文件被添加进git里了

明明gitIgnore里配置了忽略.DS_Store,但在Android/imui/src/main/java/cn/jiguang/imui/messages/下还是发现了有这个文件的存在

可以增加其他输入视图吗?

可以增加其他的输入视图吗?因为不同项目有不同的需求
比如(只需要语音和文本):
你看不到我 ^_^

如果等不了你们,到时候我们写好了可以给你提 PR 吗? ^_^

权限的问题

1.权限没有提示
2.自拍时,拍出来的图像是左右反的

需求收集

大家有需求可以发到这里 👇。
有相同需求的可以点赞,这对我们今后的开发计划很有帮助。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.