diff --git a/App.vue b/App.vue
index 5cbeb8c..88885f8 100644
--- a/App.vue
+++ b/App.vue
@@ -4,8 +4,8 @@
export default {
onLaunch: function() {
- // im.initIm('lmxuhwaglu76d')
- return
+ im.initIm('lmxuhwaglu76d')
+ // return
//#ifdef APP-PLUS
// 获取系统版本号
getVersions({
diff --git a/pages.json b/pages.json
index 91d3f80..fe8c4d6 100644
--- a/pages.json
+++ b/pages.json
@@ -373,26 +373,6 @@
"navigationStyle": "custom"
}
},
- {
- "path": "pages/im/private/index",
- "name": "imPrivate",
- "style": {
- "navigationBarTitleText": "聊天",
- "navigationBarBackgroundColor": "#F3F6FB",
- "disableScroll": true,
- "app-plus": {
- "titleNView": {
- "type": "default",
- "buttons": [{
- "float": "right",
- "fontSrc": "/static/iconfont.ttf",
- "text": "\ue607",
- "fontSize": "20px"
- }]
- }
- }
- }
- },
{
"path": "pages/im/private/call",
"name": "imPrivateCall",
diff --git a/pages/im/components/sentText.nvue b/pages/im/components/sentText.nvue
index 0ac916f..5f71e0c 100644
--- a/pages/im/components/sentText.nvue
+++ b/pages/im/components/sentText.nvue
@@ -47,9 +47,7 @@
if (!this.disabled) {
RongIMLib.clearTextMessageDraft(this.conversationType, this.targetId)
im.sentText(this.conversationType, this.targetId, this.inputTxt, () => {
- setTimeout(() => {
- this.$emit('success')
- }, 500)
+ this.$emit('success')
this.inputTxt = ''
})
}
diff --git a/pages/im/components/sentVoice.nvue b/pages/im/components/sentVoice.nvue
index 1452e8a..7c400fc 100644
--- a/pages/im/components/sentVoice.nvue
+++ b/pages/im/components/sentVoice.nvue
@@ -13,7 +13,7 @@
-
-
diff --git a/utils/im/message.js b/utils/im/message.js
index 8b0069b..368715a 100644
--- a/utils/im/message.js
+++ b/utils/im/message.js
@@ -1,7 +1,7 @@
import store from '@/store/index.js'
import * as RongIMLib from '@/uni_modules/RongCloud-IMWrapper/js_sdk/index'
-const getMessageList = (conversationType, targetId, callback) => {
+const getMessageList = (conversationType, targetId, timeStamp, count, isForward, callback) => {
// 获取消息列表
const objectNames = [
'RC:TxtMsg',
@@ -16,10 +16,12 @@ const getMessageList = (conversationType, targetId, callback) => {
'RC:ReferenceMsg',
'RC:CombineMsg'
]
- const timeStamp = new Date().getTime()
- const count = 10 // 获取的消息数量
- const isForward = true // 是否向前获取
- RongIMLib.getHistoryMessagesByTimestamp(conversationType, targetId, objectNames, timeStamp,
+
+ RongIMLib.getHistoryMessagesByTimestamp(
+ conversationType,
+ targetId,
+ objectNames,
+ timeStamp + 1000,
count,
isForward,
({
diff --git a/utils/index.js b/utils/index.js
index 4b0264d..665e4d5 100644
--- a/utils/index.js
+++ b/utils/index.js
@@ -1,221 +1,183 @@
-import sha1 from './sha1.js'
-import env from './conf/env.js'
-import * as RongIMLib from '@rongcloud/imlib-uni'
+import env from './conf/env.js'
+
export default {
- checkPhone: (phone) => {
- let re = /^[0-9]+.?[0-9]*/;
- if (phone.length === 11) {
- return re.test(phone)
- }
- return false;
- },
- jumpUrl(path) {
- uni.navigateTo({
- url: path
- })
- },
- connectIM() {
- if(uni.getStorageSync('userInfo')) {
- let userInfo = JSON.parse(uni.getStorageSync('userInfo'));
- const im = getApp().globalData.im;
- im.connect({
- token: userInfo.rongimToken
- }).then(user => {
- console.log('IM链接成功, 链接用户 id 为: ', user.id);
- }).catch(error => {
- uni.hideLoading();
- console.log('IM链接失败: ', error.code, error.msg);
- });
- }
- },
- handleTimeCustom(val) {
- val = this.timeStamp(val, 'Y-m-d H:i:s')
- let currentDate = new Date();
- let currentD = currentDate.getDate();
- let currentYear = currentDate.getFullYear();
- let currentMonth = currentDate.getMonth() + 1;
- let date = val.substring(0,19);
- date = date.replace(/-/g,'/');
- let valDate = new Date(date);
- let valD = valDate.getDate();
- let valYear = valDate.getFullYear();
- let valMonth = valDate.getMonth() + 1;
- // 判断是否属于今天,计算时分
- let difftime = (currentDate - valDate) / 1000;
- let hour = valDate.getHours();
- hour = hour > 9 ? hour : '0' + hour;
- let minute = valDate.getMinutes();
- minute = minute > 9 ? minute : '0' + minute;
- if(currentYear === valYear && currentMonth === valMonth && currentD === valD) {
- return hour + ':' + minute;
- } else {
- // 计算天
- if(currentYear === valYear && currentMonth === valMonth && currentD !== valD) {
- return valMonth + '月' + valD + '日 ' + hour + '时' + minute;
- } else {
- return valYear + '年' + valMonth + '月' + valD + '日 ' + hour + ':' + minute;
- }
-
- }
- },
- handleTimeCustomCN(val) {
- val = this.timeStamp(val, 'Y-m-d H:i:s')
- console.log(val, '时间0000000');
- let currentDate = new Date();
- let currentD = currentDate.getDate();
- let currentYear = currentDate.getFullYear();
- let currentMonth = currentDate.getMonth() + 1;
- let date = val.substring(0,19);
- date = date.replace(/-/g,'/');
- let valDate = new Date(date);
- let valD = valDate.getDate();
- let valYear = valDate.getFullYear();
- let valMonth = valDate.getMonth() + 1;
- // 判断是否属于今天,计算时分
- let difftime = (currentDate - valDate) / 1000;
- if(currentYear === valYear && currentMonth === valMonth && currentD === valD) {
- let minute = parseInt(difftime % 3600 / 60);
- if(minute <= 60) {
- return minute === 0 ? '刚刚' : minute + '分钟前';
- } else {
- return (minute * 60).toFixed(0) + '小时前';
- }
- } else {
- // 计算天
- if(currentYear === valYear && currentMonth === valMonth && currentD - 1 === valD) {
- return '昨天';
- } else {
- let days = Math.abs(currentDate.getTime() - valDate.getTime())/(1000*60*60*24);
- return Math.ceil(days) + '天前';
- }
-
- }
- },
- timeStamp(timestamp, formats) {
- /*
- ** 时间戳转换成指定格式日期
- ** eg.
- ** dateFormat(11111111111111, 'Y年m月d日 H时i分')
- ** → "2322年02月06日 03时45分"
- */
- // formats格式包括
- // 1. Y-m-d
- // 2. Y-m-d H:i:s
- // 3. Y年m月d日
- // 4. Y年m月d日 H时i分
- formats = formats || 'Y-m-d';
+ checkPhone: (phone) => {
+ let re = /^[0-9]+.?[0-9]*/;
+ if (phone.length === 11) {
+ return re.test(phone)
+ }
+ return false;
+ },
+ jumpUrl(path) {
+ uni.navigateTo({
+ url: path
+ })
+ },
+ handleTimeCustom(val) {
+ val = this.timeStamp(val, 'Y-m-d H:i:s')
+ let currentDate = new Date();
+ let currentD = currentDate.getDate();
+ let currentYear = currentDate.getFullYear();
+ let currentMonth = currentDate.getMonth() + 1;
+ let date = val.substring(0, 19);
+ date = date.replace(/-/g, '/');
+ let valDate = new Date(date);
+ let valD = valDate.getDate();
+ let valYear = valDate.getFullYear();
+ let valMonth = valDate.getMonth() + 1;
+ // 判断是否属于今天,计算时分
+ let difftime = (currentDate - valDate) / 1000;
+ let hour = valDate.getHours();
+ hour = hour > 9 ? hour : '0' + hour;
+ let minute = valDate.getMinutes();
+ minute = minute > 9 ? minute : '0' + minute;
+ if (currentYear === valYear && currentMonth === valMonth && currentD === valD) {
+ return hour + ':' + minute;
+ } else {
+ // 计算天
+ if (currentYear === valYear && currentMonth === valMonth && currentD !== valD) {
+ return valMonth + '月' + valD + '日 ' + hour + '时' + minute;
+ } else {
+ return valYear + '年' + valMonth + '月' + valD + '日 ' + hour + ':' + minute;
+ }
- var zero = function(value) {
- if (value < 10) {
- return '0' + value;
- }
- return value;
- };
- var myDate = timestamp ? new Date(timestamp) : new Date();
+ }
+ },
+ handleTimeCustomCN(val) {
+ val = this.timeStamp(val, 'Y-m-d H:i:s')
+ console.log(val, '时间0000000');
+ let currentDate = new Date();
+ let currentD = currentDate.getDate();
+ let currentYear = currentDate.getFullYear();
+ let currentMonth = currentDate.getMonth() + 1;
+ let date = val.substring(0, 19);
+ date = date.replace(/-/g, '/');
+ let valDate = new Date(date);
+ let valD = valDate.getDate();
+ let valYear = valDate.getFullYear();
+ let valMonth = valDate.getMonth() + 1;
+ // 判断是否属于今天,计算时分
+ let difftime = (currentDate - valDate) / 1000;
+ if (currentYear === valYear && currentMonth === valMonth && currentD === valD) {
+ let minute = parseInt(difftime % 3600 / 60);
+ if (minute <= 60) {
+ return minute === 0 ? '刚刚' : minute + '分钟前';
+ } else {
+ return (minute * 60).toFixed(0) + '小时前';
+ }
+ } else {
+ // 计算天
+ if (currentYear === valYear && currentMonth === valMonth && currentD - 1 === valD) {
+ return '昨天';
+ } else {
+ let days = Math.abs(currentDate.getTime() - valDate.getTime()) / (1000 * 60 * 60 * 24);
+ return Math.ceil(days) + '天前';
+ }
- var year = myDate.getFullYear();
- var month = zero(myDate.getMonth() + 1);
- var day = zero(myDate.getDate());
+ }
+ },
+ timeStamp(timestamp, formats) {
+ /*
+ ** 时间戳转换成指定格式日期
+ ** eg.
+ ** dateFormat(11111111111111, 'Y年m月d日 H时i分')
+ ** → "2322年02月06日 03时45分"
+ */
+ // formats格式包括
+ // 1. Y-m-d
+ // 2. Y-m-d H:i:s
+ // 3. Y年m月d日
+ // 4. Y年m月d日 H时i分
+ formats = formats || 'Y-m-d';
- var hour = zero(myDate.getHours());
- var minite = zero(myDate.getMinutes());
- var second = zero(myDate.getSeconds());
+ var zero = function(value) {
+ if (value < 10) {
+ return '0' + value;
+ }
+ return value;
+ };
+ var myDate = timestamp ? new Date(timestamp) : new Date();
- return formats.replace(/Y|m|d|H|i|s/ig, function(matches) {
- return ({
- Y: year,
- m: month,
- d: day,
- H: hour,
- i: minite,
- s: second
- })[matches];
- });
- },
- // 时间字符串转换中文时间
- timeToDate(str) {
- let date = str.substring(0, 19);
- date = date.replace(/-/g, '/');
- date = new Date(str);
- let dateObj = {
- year: date.getFullYear(),
- month: date.getMonth() + 1,
- day: date.getDate(),
- hour: date.getHours(),
- minute: date.getMinutes(),
- second: date.getSeconds()
- }
- let string = dateObj.year + '年' + dateObj.month + '月' + dateObj.day + '日 ' + dateObj.hour + '时' + dateObj
- .minute + '分';
- return string
- },
- getAge(strAge) {
- let birArr = strAge.split("-");
- let birYear = birArr[0];
- let birMonth = birArr[1];
- let birDay = birArr[2];
+ var year = myDate.getFullYear();
+ var month = zero(myDate.getMonth() + 1);
+ var day = zero(myDate.getDate());
- d = new Date();
- let nowYear = d.getFullYear();
- let nowMonth = d.getMonth() + 1; //记得加1
- let nowDay = d.getDate();
- let returnAge;
+ var hour = zero(myDate.getHours());
+ var minite = zero(myDate.getMinutes());
+ var second = zero(myDate.getSeconds());
- if (birArr == null) {
- return false
- };
- let d = new Date(birYear, birMonth - 1, birDay);
- if (d.getFullYear() == birYear && (d.getMonth() + 1) == birMonth && d.getDate() == birDay) {
- if (nowYear == birYear) {
- returnAge = 0;
- } else {
- let ageDiff = nowYear - birYear;
- if (ageDiff > 0) {
- if (nowMonth == birMonth) {
- let dayDiff = nowDay - birDay;
- if (dayDiff < 0) {
- returnAge = ageDiff - 1;
- } else {
- returnAge = ageDiff;
- }
- } else {
- let monthDiff = nowMonth - birMonth;
- if (monthDiff < 0) {
- returnAge = ageDiff - 1;
- } else {
- returnAge = ageDiff;
- }
- }
- } else {
- return "出生日期晚于今天,数据有误"; //返回-1 表示出生日期输入错误 晚于今天
- }
- }
- return returnAge;
- } else {
- return ("输入的日期格式错误!");
- }
- },
- getImUserInfo(targetId) {
- return new Promise((resolve, reject) => {
- const Nonce = Date.now();
- const Timestamp = Date.now() * 1000;
- uni.request({
- url: 'https://api2-cn.ronghub.com/user/info.json', //仅为示例,并非真实接口地址。
- data: {
- userId: targetId
- },
- method: 'POST',
- header: {
- 'Content-Type': 'application/x-www-form-urlencoded',
- 'App-Key': '你的key',
- 'Nonce': Nonce,
- 'Timestamp': Timestamp,
- 'Signature': sha1(env.IMsecret + Nonce + Timestamp)
- },
- success: (res) => {
- resolve(res.data)
- }
- });
- })
- }
+ return formats.replace(/Y|m|d|H|i|s/ig, function(matches) {
+ return ({
+ Y: year,
+ m: month,
+ d: day,
+ H: hour,
+ i: minite,
+ s: second
+ })[matches];
+ });
+ },
+ // 时间字符串转换中文时间
+ timeToDate(str) {
+ let date = str.substring(0, 19);
+ date = date.replace(/-/g, '/');
+ date = new Date(str);
+ let dateObj = {
+ year: date.getFullYear(),
+ month: date.getMonth() + 1,
+ day: date.getDate(),
+ hour: date.getHours(),
+ minute: date.getMinutes(),
+ second: date.getSeconds()
+ }
+ let string = dateObj.year + '年' + dateObj.month + '月' + dateObj.day + '日 ' + dateObj.hour + '时' + dateObj
+ .minute + '分';
+ return string
+ },
+ getAge(strAge) {
+ let birArr = strAge.split("-");
+ let birYear = birArr[0];
+ let birMonth = birArr[1];
+ let birDay = birArr[2];
+
+ d = new Date();
+ let nowYear = d.getFullYear();
+ let nowMonth = d.getMonth() + 1; //记得加1
+ let nowDay = d.getDate();
+ let returnAge;
+
+ if (birArr == null) {
+ return false
+ };
+ let d = new Date(birYear, birMonth - 1, birDay);
+ if (d.getFullYear() == birYear && (d.getMonth() + 1) == birMonth && d.getDate() == birDay) {
+ if (nowYear == birYear) {
+ returnAge = 0;
+ } else {
+ let ageDiff = nowYear - birYear;
+ if (ageDiff > 0) {
+ if (nowMonth == birMonth) {
+ let dayDiff = nowDay - birDay;
+ if (dayDiff < 0) {
+ returnAge = ageDiff - 1;
+ } else {
+ returnAge = ageDiff;
+ }
+ } else {
+ let monthDiff = nowMonth - birMonth;
+ if (monthDiff < 0) {
+ returnAge = ageDiff - 1;
+ } else {
+ returnAge = ageDiff;
+ }
+ }
+ } else {
+ return "出生日期晚于今天,数据有误"; //返回-1 表示出生日期输入错误 晚于今天
+ }
+ }
+ return returnAge;
+ } else {
+ return ("输入的日期格式错误!");
+ }
+ }
}
diff --git a/js_sdk/wa-permission/permission.js b/utils/permission.js
similarity index 100%
rename from js_sdk/wa-permission/permission.js
rename to utils/permission.js
diff --git a/utils/sha1.js b/utils/sha1.js
deleted file mode 100644
index 5fc4774..0000000
--- a/utils/sha1.js
+++ /dev/null
@@ -1,50 +0,0 @@
-function encodeUTF8(s) {
- var i, r = [], c, x;
- for (i = 0; i < s.length; i++)
- if ((c = s.charCodeAt(i)) < 0x80) r.push(c);
- else if (c < 0x800) r.push(0xC0 + (c >> 6 & 0x1F), 0x80 + (c & 0x3F));
- else {
- if ((x = c ^ 0xD800) >> 10 == 0) //对四字节UTF-16转换为Unicode
- c = (x << 10) + (s.charCodeAt(++i) ^ 0xDC00) + 0x10000,
- r.push(0xF0 + (c >> 18 & 0x7), 0x80 + (c >> 12 & 0x3F));
- else r.push(0xE0 + (c >> 12 & 0xF));
- r.push(0x80 + (c >> 6 & 0x3F), 0x80 + (c & 0x3F));
- };
- return r;
-}
-
-// 字符串加密成 hex 字符串
-function sha1(s) {
- var data = new Uint8Array(encodeUTF8(s))
- var i, j, t;
- var l = ((data.length + 8) >>> 6 << 4) + 16, s = new Uint8Array(l << 2);
- s.set(new Uint8Array(data.buffer)), s = new Uint32Array(s.buffer);
- for (t = new DataView(s.buffer), i = 0; i < l; i++)s[i] = t.getUint32(i << 2);
- s[data.length >> 2] |= 0x80 << (24 - (data.length & 3) * 8);
- s[l - 1] = data.length << 3;
- var w = [], f = [
- function () { return m[1] & m[2] | ~m[1] & m[3]; },
- function () { return m[1] ^ m[2] ^ m[3]; },
- function () { return m[1] & m[2] | m[1] & m[3] | m[2] & m[3]; },
- function () { return m[1] ^ m[2] ^ m[3]; }
- ], rol = function (n, c) { return n << c | n >>> (32 - c); },
- k = [1518500249, 1859775393, -1894007588, -899497514],
- m = [1732584193, -271733879, null, null, -1009589776];
- m[2] = ~m[0], m[3] = ~m[1];
- for (i = 0; i < s.length; i += 16) {
- var o = m.slice(0);
- for (j = 0; j < 80; j++)
- w[j] = j < 16 ? s[i + j] : rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1),
- t = rol(m[0], 5) + f[j / 20 | 0]() + m[4] + w[j] + k[j / 20 | 0] | 0,
- m[1] = rol(m[1], 30), m.pop(), m.unshift(t);
- for (j = 0; j < 5; j++)m[j] = m[j] + o[j] | 0;
- };
- t = new DataView(new Uint32Array(m).buffer);
- for (var i = 0; i < 5; i++)m[i] = t.getUint32(i << 2);
-
- var hex = Array.prototype.map.call(new Uint8Array(new Uint32Array(m).buffer), function (e) {
- return (e < 16 ? "0" : "") + e.toString(16);
- }).join("");
- return hex;
-}
-export default sha1
\ No newline at end of file