在ionic2中使用极光提供的jmessage进行即时聊天,由于极光官方没有像jpush那样提供cordova插件,而我们为了简便就不去将jmessage封装成cordova的插件而是使用jmessage提供的web sdk进行即时聊天的开发。
由于在ionic2中使用jquery这样的三方类库将不再像在ionic1中那样简单,而是提供了一个typings的库。它可以将js库生成对应的文件,然后通过typings加载到项目中去,比如jquery在通过typings处理后就可以直接导入使用。详细地址
而在这里我们采用另外一种也是最常用的使用三方类库的方式:
要使用极光提供的jmessage那么我们首先需要去极光官网创建一个应用,得到应用的AppKey和Master Secret。这里就不再赘述。
第一步:在极光的官网找到jmessage 的web sdk开发文档 ,然后再资源下载中下载Web-SDK文件。
第二步:将下载的jmessage-sdk-web.min.js文件导入到项目中,然后再项目的index.html中引入该文件。
第三步:在需要使用JMessage的时候对JMessage进行声明(不知道为什么的请看我之前的 Ionic2使用非ionic-native中的cordova插件的方法 这篇文章)
部分代码:
ngOnInit() {
let JIM = new JMessage();
JIM.init({
"appkey": "25b693b31d2c2ad5f072ef0c",
"random_str": "022cd9fd995849b58b3ef0e943421ed9",
"signature": "D97C2DDA3E46E5E6D482E9E8EE84AF93",
"timestamp": "1467967210887"
}).onSuccess(function (data) {
if (data.code == 0) {
console.log('初始化成功');
// 注册
// JIM.register({
// 'username': 'test',
// 'password': '123456'
// //'is_md5' : '<is_md5>可选参数,密码是否为md5加密的密码,默认为false
// }).onSuccess(function (data) {
// if (data.code == 0) {
// console.log('注册成功');
// } else if (data.code == 882002) {
// console.log('用户已存在,视操作而定');
// }
// // console.log('success:' + JSON.stringify(data))
// }).onFail(function (data) {
// console.log('error:' + JSON.stringify(data))
// });
//登录
JIM.login({
'username': 'test',
'password': '123456'
//'is_md5' : '<is_md5>可选参数,密码是否为md5加密的密码,默认为false
}).onSuccess(function (data) {
if (data.code == 0) {
console.log('登陆成功,会返回用户名');
//接下来就可以进行会话的一系列操作了
//获取会话列表
JIM.getConversation().onSuccess(function (data) {
console.log('success:' + JSON.stringify(data))
}).onFail(function (data) {
console.log('error:' + JSON.stringify(data))
});
JIM.onMsgReceive(function (data) {
console.log('receive msg: ' + JSON.stringify(data));
});
} else if (data.code == 880104) {
//更多错误请参照错误代码列表
console.log('登录失败,密码错误');
}
}).onFail(function (data) {
console.log('error:' + JSON.stringify(data))
});
}
}).onFail(function (data) {
console.log('error:' + JSON.stringify(data))
});
}