目前做了一个websocket客户端,连接ET6服务器,在浏览器里正常运行。里面需要解析服务器返回的数据,
目前在网上找到一个方法,是用FileReader,在浏览器里运行可以,但是打成安卓包后,就不行了,如下,经过调试,发现andorid包运行后,onload没有被回调。
`websocket.onmessage = function (evt) {
var reader = new FileReader();
reader.onload = function (e) {
var opArr = new Uint8Array(reader.result, 0, 2);//前两个字节是存放本消息的操作码
var buf = new Uint8Array(reader.result, 2, reader.result.byteLength - 2);
var op = opArr[0] + (opArr[1] << 8);
var msg = protobufHelper.decode(op, buf);
if (!msg || !op) return;
if (msg.RpcId) {
//是回复
var callback = resCallback['RpcId_' + msg.RpcId];
if (callback) {
callback(op, msg);
return;
}
}
//服务端主动推的消息
onMsg(op, msg);
};
reader.readAsArrayBuffer(evt.data);
};`
有哪位知道原因吗?或有替代方案