• Stars
    star
    200
  • Rank 195,325 (Top 4 %)
  • Language
    JavaScript
  • Created about 8 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

介绍


环信小程序demo是基于环信im SDK开发的一款即时通讯的小程序。这个demo可以帮助开发者们更轻松的集成环信SDK。可扫码体验: huanxinIM demo 包含以下功能

  • 最近通话
  • 通讯录
  • 通知(加好友、加群)
  • 设置

在本地跑起来

拉取代码,导入开发者工具即可运行起来。

数据结构

登录页:
		login: {
			name:'',
			psd: '',
			grant_type: 'password',
		}
		
注册页:
		register: {
			username: '',
			password: ''
		}
		
通讯录页:
	   member:[],   //好友列表
	   
聊天页:
	   chatMsg:[{
			info:{
		        to:''         
			},
			username:'',      //用户名
			yourname:'',      //好友名
			msg: {
				type:'',    
				data:''
			},
			style:'',       //样式
			time:'',
			mid:''        //message ID
	   }]
	   
globalData: 
	userInfo: '',  //用户微信授权信息
	chatMsg: []   //用于存储离线消息
	unReadMessageNum: 0, //未读消息数
	saveFriendList: [],//加好友申请
	saveGroupInvitedList: [], //加群邀请
	isIPX: false //是否为iphone X //是否为iphoneX
	
缓存:
   myUsername: ''    //缓存登录用户名	   
   yourname + myName:''  //以用户名跟好友名为key来缓存聊天记录

项目结构

|- comps 自定义组件目录
    |- addfriend 添加好友页
    |-chat 聊天页面
    |-swipedelete 测滑删除
    |-toast toast
|-images demo中用到的图片 还有表情
|-pages 功能页面
    |-register 注册页
    |-login 登录页
    |-login_token token登录页
    |-chat 最近联系人页(通话)
        |-chatroom 聊天室页
    |-main 联系人页
        |-add_new 加好友页
        |-group 群组页
            |-groupSetting 群组设置页
    |-notificaton 通知页
        |-notificaton_friendDetail 加好友通知页
        |-notificaton_groupDetail 加群组通知页
    |-setting 设置页
        |-setting_general 通用设置页
|-utils 工具类和sdk的一些配置
|-sdk 环信sdk
|-app.js 小程序根实例,存放一些全局变量,注册监听事件
|-app.json 注册页面以及全局的一些配置
|-app.wxss 一些全局样式
|-project.config.json工程的一些配置,和开发者工具 “详情” 中的设置一样

可以复用的代码

如果想快速搭建起一个有im能力的小程序,可以选择复用demo中的代码,其中utils以帮助快速集成sdk,comps > chat是聊天页。当然其他部分需要复用的,如常见的测滑删除、联系人按字母分类、通知的订阅模式也可以去具体文件去找。

常见问题

  • 怎么发扩展消息?

    构造消息的时候msg.set(option), option中传人ext字段,即可发送扩展消息,具体可以查看文档

  • 使用mpvue集成报错?

    .babelrc文件中修改 "plugins": ["transform-es2015-modules-commonjs"],这里有一些开发者的经验

  • 陌生人消息不上屏?

    目前demo并没有去实现,现在的逻辑是会话列表是从好友列表去查的,可以看pages/chat/chat.js getChatList()。

遇到的一些坑

  • 聊天页面布局,input focus时页面滑动,光标会错位,官方的说法是,input focus时不能使用动画。
  • 在scroll-view中无法触发onPullDownRefresh。
  • margin-bottom 只有在下面还有元素时才生效。
  • 使用enablePullDownRefresh看不见下拉动画,需要将backgroundTextStyle设为dark。
  • 播放语音 onTimeUpdate在开发者工具上不能稳定触发。
  • background-image只能用网络地址。
  • 适配iphone X 使用wx.getSystemInfo() 返回的model在工具上是'iPhone X' 在真机上后面还会有其他字符,不要精确匹配。

坑还有很多,大家慢慢趟吧

写在最后

这期小程序demo只完善了单聊部分,后面还要优化群组的一些功能,关于图片消息缓存的问题,目前图片都是压缩过的,大约在200k左右,如果要做缓存自己可以使用storage去实现,但是要注意小程序只有10M的存储空间,还有一些功能demo没有去实现但是sdk是支持的,要用到的话大家可以去查文档

More Repositories

1

emchat-server-examples

PHP
523
star
2

web-im

环信 web im sdk
JavaScript
353
star
3

sdkdemoapp3.0_android

Java
312
star
4

easeui

Java
292
star
5

im_flutter_sdk

环信im flutter sdk, example中包含ui代码.
Dart
237
star
6

webim-react-native

JavaScript
194
star
7

sdkdemoapp3.0_ios

Objective-C
144
star
8

easemob-demo-react

JavaScript
125
star
9

webim-vue-demo

Easemob webim demo built on top of vue from scratch.
JavaScript
109
star
10

kefu-android-demo

demo app for help desk cloud
Java
94
star
11

sdk-ios-cocoapods

环信iOS SDK CocoaPod repo
Objective-C
78
star
12

webim-uniapp-demo

Vue
77
star
13

chat-android

Java
74
star
14

easeui_ios

Objective-C
74
star
15

livestream_demo_android

Java
69
star
16

kefu-ios-demo

demo app for easemob help desk cloud
Objective-C
53
star
17

livestream_demo_ios

直播demo iOS
Objective-C
49
star
18

kefu-webim

JavaScript
41
star
19

easeui-ios-hyphenate-cocoapods

cocoapods for Hyphenate EaseUI
Objective-C
35
star
20

SwallowKeeper

The description of the repo.
Python
34
star
21

easemob-demo-ios

Swift
22
star
22

easemob-im-server-sdk

IM server SDK
Java
20
star
23

videocall-android

Java
18
star
24

sdk-ios-cocoapods-integration

Objective-C
18
star
25

sdkdemoapp_windows

Windows demo
JavaScript
15
star
26

Circle-Demo-Web

JavaScript
13
star
27

www.easemob.com

环信
HTML
12
star
28

easemob_supercommunity

Java
11
star
29

easemob-demo-appserver

IM app-server.
Java
10
star
30

easecallkitui-android

Java
9
star
31

easemob-uikit-react

TypeScript
9
star
32

mua

Java
8
star
33

liveroom-android

Java
7
star
34

medical_treatment_demo

Vue
6
star
35

EasemobVoice

Java
6
star
36

easeui-ios-cocoapods

Objective-C
5
star
37

ease_call_kit

Easemob Callkit
Dart
5
star
38

emclient-unity

C#
5
star
39

Easemob2023-Innovation-Challenge

JavaScript
5
star
40

easemob-uikit-ios

Swift
5
star
41

learn-easemob

JavaScript
5
star
42

whiteboard_demo_web

JavaScript
4
star
43

kefu-agent-android

The description of the repo.
Java
4
star
44

easemob-push-server-sdk

Java
4
star
45

flutter_chat_uikit

Dart
4
star
46

videocall-web

JavaScript
4
star
47

EasemobCircle-2022-Innovation-Challenge

JavaScript
4
star
48

easemob-doc

Shell
3
star
49

easecallkitui-ios

Objective-C
3
star
50

Creative-Challenge-MQTT

MQTT challenge
3
star
51

kefu-agent-ios

The description of the repo.
Objective-C
3
star
52

voiceroom_demo_android

Java
2
star
53

easemob-demo-android

Kotlin
2
star
54

liveroom-ios

Objective-C
2
star
55

UIKit_Chatroom_ios

Swift
2
star
56

easemob-007-token

Java
2
star
57

easemob-support

Vue
2
star
58

UIKit_Chatroom_android

Kotlin
2
star
59

easemob-uikit-flutter

Dart
2
star
60

react-native-chat-sdk

TypeScript
2
star
61

easemob-uikit-reactnative

TypeScript
2
star
62

voiceroom_demo_ios

Swift
1
star
63

im-php-server-sdk

PHP Server SDK for IM.
PHP
1
star
64

easemob_flutter_chat

Flutter chat demo.
Dart
1
star
65

emclient-u3d

u3d sdk for Easemob IM
Objective-C
1
star
66

kefu-scripts

2023年4月4日已迁移至gitlab上
Shell
1
star
67

easemob-voiceroom

Java
1
star
68

livestream-demo-app-server

Java
1
star
69

docs

官网上的文档网站
PHP
1
star
70

Circle-Demo-Android

Java
1
star
71

kefu-vec-webim

JavaScript
1
star
72

whiteboard_demo_android

Java
1
star
73

videocall-ios

Objective-C
1
star
74

UIKit_Chatroom_flutter

Dart
1
star
75

UIKit_Chatroom_rn

TypeScript
1
star
76

Demo-ChattyAI

Java
1
star
77

flutter_chat_callkit

Dart
1
star
78

easemob-uikit-android

Kotlin
1
star