对环信的封装--初级

@interface EaseMobProcessor : NSObject

+(void)    init:(UIApplication *)application

launchOptions:(NSDictionary *)launchOptions;

+(void) login;

+(void) logout;

+(void) registeDeviceToken:(UIApplication *)application deviceToken:(NSData *)deviceToken;

+(void) applicationWillResignActive:(UIApplication *)application;

+(void) applicationDidEnterBackground:(UIApplication *)application;

+(void) applicationWillEnterForeground:(UIApplication *)application;

+(void) applicationDidBecomeActive:(UIApplication *)application;

+(void) applicationWillTerminate:(UIApplication *)application;

@end



EaseMobProcessor.m中

#import "EaseMobProcessor.h"

#import "EaseMob.h"

#import "AppStatus.h"

#import "UserStore.h"

@implementation EaseMobProcessor

+(void) init:(UIApplication *)application launchOptions:(NSDictionary *)launchOptions{

//注册 APNS文件的名字, 需要与后台上传证书时的名字一一对应

NSString *apnsCertName = [AppStatus sharedInstance].easemobApnsCertName;

NSLog(@">>>>>>ease mob config: %@, %@", apnsCertName, [AppStatus sharedInstance].easemobAppKey);

[[EaseMob sharedInstance] registerSDKWithAppKey:[AppStatus sharedInstance].easemobAppKey apnsCertName:apnsCertName];

[[EaseMob sharedInstance] enableBackgroundReceiveMessage];

[[EaseMob sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];

}

//登录时调用

+(void) login{

AppStatus *as = [AppStatus sharedInstance];

if (![as logined] || as.easeMobLogined) {

return ;

}

//要注意这里的判断![as.user.easemobUserUuid isEqual:[NSNull null]

if (as.user.easemobUserUuid != nil && ![as.user.easemobUserUuid isEqual:[NSNull null]]

&& ![as.user.easemobUserUuid isEqualToString:@""]) {

NSLog(@">>>> easemob username:%@, pwd:%@", as.user.userCode, as.user.accessToken);

[[EaseMob sharedInstance].chatManager asyncLoginWithUsername:as.user.userCode

password:as.user.accessToken

completion:

^(NSDictionary *loginInfo, EMError *error) {

if (error) {

NSLog(@"登录环信失败:%@", error);

}else {

NSLog(@"登录环信成功");

as.easeMobLogined = YES;

[AppStatus saveAppStatus];

}

} onQueue:nil];

}else{

[NSThread sleepForTimeInterval:2];

[UserStore getMyUserInfo:^(User *user, NSError *err) {

as.user.easemobUserUuid = user.easemobUserUuid;

[EaseMobProcessor login];

}];

}

}

//  退出是调用

+(void) logout{

AppStatus *as = [AppStatus sharedInstance];

[[EaseMob sharedInstance].chatManager asyncLogoff];

as.easeMobLogined = NO;

[AppStatus saveAppStatus];

}

+(void) registeDeviceToken:(UIApplication *)application deviceToken:(NSData *)deviceToken{

// 让SDK得到App目前的各种状态,以便让SDK做出对应当前场景的操作

[[EaseMob sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];

}

+(void) applicationWillResignActive:(UIApplication *)application{

// 让SDK得到App目前的各种状态,以便让SDK做出对应当前场景的操作

[[EaseMob sharedInstance] applicationWillResignActive:application];

}

+(void) applicationDidEnterBackground:(UIApplication *)application{

// 让SDK得到App目前的各种状态,以便让SDK做出对应当前场景的操作

[[EaseMob sharedInstance] applicationDidEnterBackground:application];

}

+(void) applicationWillEnterForeground:(UIApplication *)application{

// 让SDK得到App目前的各种状态,以便让SDK做出对应当前场景的操作

[[EaseMob sharedInstance] applicationWillEnterForeground:application];

}

+(void) applicationDidBecomeActive:(UIApplication *)application{

// 让SDK得到App目前的各种状态,以便让SDK做出对应当前场景的操作

[[EaseMob sharedInstance] applicationDidBecomeActive:application];

[EaseMobProcessor login];

}

+(void) applicationWillTerminate:(UIApplication *)application{

// 让SDK得到App目前的各种状态,以便让SDK做出对应当前场景的操作

[[EaseMob sharedInstance] applicationWillTerminate:application];

}

@end

对环信的封装--初级

时间: 2024-10-26 21:10:31

对环信的封装--初级的相关文章

Vue 集成环信 全局封装环信WebSDK 可直接使用

Step1.安装 easemob-websdk npm install --save easemob-websdk Step2.安装 strophe.js    underscore    crypto-js npm install --save strophe.js underscore crypto-js Step3.使用 新建一个webim.js import store from '@/store' window.Strophe = require('strophe.js').Strop

Vue 集成环信 全局封装环信WebSDK

1 安装 npm install easemob-websdk --save 官方安装 ,这种安装要在依赖包配置初始化链接,提交代码时并没把配置提交 使用 hx-websdk 安装 npm install --save hx-websdk  2 .使用 新建一个webim.js  放在聊天窗口组件同一层级,为了Emoji图片路径同步 import store from '@/store/store' // window.Strophe = require('strophe.js').Stroph

线程阻塞问题-功能:环信登录失败后自动登录5次

项目中集成了环信,点击联系客服时需要调取环信的接口,现在有个要求,如果调取环信的登录接口失败了,就要重新登录,但是这个操作不能影响主线程的操作,登录次数达到一定的数量后停止登录.首先:环信的登录时同步的,需要我们开启一个线程,不然当环信登录失败时会很容易造成界面卡死的情况.+ (void)loginWithSuccessBlock:(void(^)())success FailureBlock:(void(^)())failure{   // 自己封装的一个公共类 // 开启一个线程防止登录失败

环信 集成 笔记

环信的教程: 没有初始化SDK 去AppDelegate里面初始化 密码 User not exist         ?????????? 每一个应用都有自己的注册用户  去你的后台管理   去看你的注册的用户数 为什么demo的可以跑起来???????? 是在它的应用下注册的 怎么去注册用户  -注册用户 用户名字可以相同   不同的应用 那个打印的loginInfo 是这个字典的也就是用户的登录信息 你会发现打印的loginInfo上面还有一坨恶心的东西,那个是环信SDK自己打印的日志信息

环信Restfull API dotnetSDK

Easemob.Restfull4Net 环信Restfull API dotnet的封装 支持的.Net Framework版本:4.0 API地址:http://docs.easemob.com/start/100serverintegration 一.SDK的使用说明: 采用配置节点的形势来设置环信,且一次可以支持多个app进行调用,在数据处理上,全部采用强类型实体进行包装,异常处理全部数据错误日志,方便查询. 以下为配置节点的使用方法: 1.采用Section的形势配置app,这种方式有

李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档

李洪强iOS开发之-环信02.1_环信 SDK 2.x到3.0升级文档 SDK 2.x 至 3.0 升级指南 环信 SDK 3.0 升级文档 3.0 中的核心类为 EMClient 类,通过 EMClient 类可以获取到 chatManager.groupManager.contactManager.roomManager对象.原来 2.0 版本的 SDK 很多方法提供了同步.异步回调.异步(block)三种方法,3.0 版只提供同步方法(async开头的方法为异步方法). 例如: //2.0

一言不合你就用环信搞个直播APP

原文地址:http://community.easemob.com/article/825307904 里面还有我的更多开源项目干货,欢迎大家过来点赞 最近互联网直播平台催生了一批批网红大咖,作为程序猿,我们绝不甘于委身幕后做搬砖工,我们一定要闪亮登场!!!做一个属于我们程序猿的IOS版直播平台~~ 来吧!少年,跟着我们做完这个APP,下一个"朱碧石",肯定就是你啦~ 先看看我们即将要做的这个APP的成品截图,内心激动一下啵~ so-是不是很酷啊?But...上面这个APP,需要对各种

54.用环信实现聊天功能

1.配置EM <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.administrator.chatdemo"> <!--环信需要权限--><uses-permission android:name="android.permission.VIBRATE" /> <uses-pe

iOS 环信 集成 详细步骤图文

环信的教程: 没有初始化SDK 去AppDelegate里面初始化 密码 User not exist         ?????????? 每一个应用都有自己的注册用户  去你的后台管理   去看你的注册的用户数 为什么demo的可以跑起来???????? 是在它的应用下注册的 怎么去注册用户  -注册用户 用户名字可以相同   不同的应用 那个打印的loginInfo 是这个字典的也就是用户的登录信息 你会发现打印的loginInfo上面还有一坨恶心的东西,那个是环信SDK自己打印的日志信息