|
|
|
//ascii 返回长度
|
|
|
|
function ascLength(codeat){
|
|
|
|
let len=1
|
|
|
|
if(codeat>0x4000000){
|
|
|
|
len=6
|
|
|
|
}else if(codeat>0x200000){
|
|
|
|
len=5
|
|
|
|
}else if(codeat>65536){
|
|
|
|
len=4
|
|
|
|
}else if(codeat>2048){
|
|
|
|
len=3
|
|
|
|
}else{
|
|
|
|
len=2
|
|
|
|
}
|
|
|
|
return len
|
|
|
|
}
|
|
|
|
//简单计算字节长度
|
|
|
|
String.getBlength = function (str) {
|
|
|
|
for (var i = str.length, n = 0; i--; ) {
|
|
|
|
n += ascLength(str.charCodeAt(i));
|
|
|
|
}
|
|
|
|
return n;
|
|
|
|
}
|
|
|
|
//按指定字节截取字符串
|
|
|
|
String.cutByte = function(str,len,endstr){
|
|
|
|
var len = +len
|
|
|
|
,endstr = typeof(endstr) == 'undefined' ? "..." : endstr.toString();
|
|
|
|
function n2(a){ var n = a / 2 | 0; return (n > 0 ? n : 1)} //用于二分法查找
|
|
|
|
if(!(str+"").length || !len || len<=0){return "";}
|
|
|
|
if(this.getBlength(str) <= len){return str;} //整个函数中最耗时的一个判断,欢迎优化
|
|
|
|
var lenS = len - this.getBlength(endstr)
|
|
|
|
,_lenS = 0
|
|
|
|
, _strl = 0
|
|
|
|
while (_strl <= lenS){
|
|
|
|
var _lenS1 = n2(lenS -_strl)
|
|
|
|
_strl += this.getBlength(str.substr(_lenS,_lenS1))
|
|
|
|
_lenS += _lenS1
|
|
|
|
}
|
|
|
|
return str.substr(0,_lenS-1) + endstr
|
|
|
|
}
|
|
|
|
if (wx.getRealtimeLogManager) {
|
|
|
|
const logger = wx.getRealtimeLogManager()
|
|
|
|
let consoleLog=console.log
|
|
|
|
function wlog(){
|
|
|
|
let argumentsX=[...arguments]
|
|
|
|
return new Promise(function (success,fail) {
|
|
|
|
let params=""
|
|
|
|
argumentsX.forEach((val,i)=>{
|
|
|
|
let str=JSON.stringify(val);
|
|
|
|
if(!str) return;
|
|
|
|
params+=str
|
|
|
|
})
|
|
|
|
logger.info(String.cutByte(params,5000));
|
|
|
|
success()
|
|
|
|
})
|
|
|
|
}
|
|
|
|
console.log=function () {
|
|
|
|
consoleLog(...arguments)
|
|
|
|
wlog(...arguments);
|
|
|
|
}
|
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|