ionic项目添加实时聊天功能
一、准备工作
1.老生常谈,去极光官网注册自己的应用,获取相应的appId;
2.问极光官网获取最新的 Web SDK。 然后在页面中引入:
<script src='./jmessage-sdk-web.<version>.min.js'></script>
引入该 JS 后,就可以使用 Window 上的全局对象 JMessage。你可以通过以下方式创建 JMessage 示例:
var JIM = new JMessage();
二,开始写代码
1.在ts代码里面声明:
declare let JMessage:any;接下里就可以使用其变量了
JIM:any;
2.init
JIM.init({
"appkey": "4dc2d08872122b5d9f768844",//开发者在极光平台注册的 IM 应用 appkey
"random_str": "022cd956785849b58b3ef0e943421ed9",//20-36 长度的随机字符串, 作为签名加 salt 使用
"signature": signatureStr,//签名
"timestamp": time,//当前时间戳,用于防止重放攻击,精确到毫秒
"flag":"1" // 是否启用消息记录漫游,默认 0 否,1 是
}).onSuccess(function (data) {
if (data.code == 0) {
console.log('初始化成功');
// 注册
// that.register();
//登录
//that.login();
}
}).onFail(function (data) {
console.log('error:' + JSON.stringify(data))
});
}
ps:签名生成算法如下:
signature = md5(appkey=appkey×tamp=timestamp&random_str=random_str&key=secret)
其中 secret 为开发者在极光平台注册的 IM 应用 masterSecret。
需要注意的坑:时间必须不能写死,现获取;
参考代码:
let md5:MD5=new MD5();
let time = new Date().getTime();
let appkeyStr:string='appkey=4dc2d08872122b5d9f768844';
let timestampStr:string='×tamp='+time;
let randomStr:string='&random_str=022cd956785849b58b3ef0e943421ed9';
let keyStr='&key=132c243cc6f16f0441fade48';
let signatureStr:string=md5.hex_md5(appkeyStr+timestampStr+randomStr+keyStr);