网址:首页 - 极光
buildscript {
repositories {
...
mavenCentral()
}
...
}
allprojects {
repositories {
...
mavenCentral()
}
}
dependencies {
...
implementation 'cn.jiguang.sdk:jmessage:2.9.2' // 此处以JMessage 2.9.2 版本为例。
implementation 'cn.jiguang.sdk:jcore:2.3.0' // 此处以JCore 2.3.0 版本为例。
}
还要声明ndk还有你极光平台上创建的应用的key:
android {
...
defaultConfig {
applicationId "您自己的包名"
...
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "创建应用那里的AppKey", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
}
import cn.jpush.android.service.JCommonService;
public class MyJService extends JCommonService {
}
AndroidManifest.xml:
import android.app.Application;
import cn.jpush.im.android.api.JMessageClient;
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
JMessageClient.setDebugMode(true);
JMessageClient.init(this);
}
}
别忘了在AndroidManifest.xml里面声明这个Application:
JMessageClient.register(账号字符串, 密码字符串, new BasicCallback() {
@Override
public void gotResult(int i, String s) {
//i == 0则是成功,否则就是失败,失败原因是s
}
});
JMessageClient.login(账号字符串, 密码字符串, new BasicCallback() {
@Override
public void gotResult(int i, String s) {
if(i == 0){
//登录成功,跳转到聊天列表界面
}else {
showToast("登录失败:"+s);
}
}
});
JMessageClient.getMyInfo();
JMessageClient.logout();
/**
* 创建一条群聊文本信息,此方法是创建message的快捷接口,对于不需要关注会话实例的开发者可以使用此方法
* 快捷的创建一条消息。其他的情况下推荐使用{@link Conversation#createSendMessage(MessageContent)}
* 接口来创建消息
*
* @param groupID 群组的groupID
* @param text 文本内容
* @return 消息对象
*/
Message message = JMessageClient.createGroupTextMessage(groupId, text);
addMessage(message);//上屏,把发送的信息显示到UI列表上面,方法自己实现
message.setOnSendCompleteCallback(new BasicCallback() {
@Override
public void gotResult(int responseCode, String responseDesc) {
if (responseCode == 0) {
//消息发送成功
showToast("消息发送成功");
//清空输入框
etMsg.setText("");
} else {
//消息发送失败
showToast("消息发送失败");
//todo 失败的其他处理,比如显示小红感叹号
}
}
});
JMessageClient.sendMessage(message);
//声明一个接收消息的内部类,里面有俩方法,一个在线接收消息,一个离线接收消息
private class RegisterEventReceiver{
public void onEvent(MessageEvent event){
//do your own business
Message newMessage = event.getMessage();//获取此次离线期间会话收到的新消息列表
Log.i(TAG, "onEvent: "+newMessage.toJson());
recycler.post(()->{
adapter.addMessages(newMessage);
recycler.scrollToPosition(adapter.getItemCount()-1);
});
}
public void onEvent(OfflineMessageEvent event){
//do your own business
List newMessages = event.getOfflineMessageList();//获取此次离线期间会话收到的新消息列表
recycler.post(()->{
adapter.addMessages(newMessages);
recycler.scrollToPosition(adapter.getItemCount()-1);
});
for (Message newMessage : newMessages) {
Log.i(TAG, "离线消息:"+newMessage.toJson());
}
}
}
private RegisterEventReceiver receiver;
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_chat);
receiver = new RegisterEventReceiver();
//注册接收者
JMessageClient.registerEventReceiver(receiver);
}
@Override
protected void onDestroy() {
super.onDestroy();
//解注册
JMessageClient.unRegisterEventReceiver(receiver);
}
极光IM - IM 集成指南 - 极光文档