From 5e03282314a507ad298e8c5dc3f84d1306238b86 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Thu, 12 Sep 2019 12:17:31 +0800 Subject: [PATCH] build uni-app-plus-nvue --- packages/uni-app-plus-nvue/dist/index.js | 80 ++++++++++++++++-------- 1 file changed, 53 insertions(+), 27 deletions(-) diff --git a/packages/uni-app-plus-nvue/dist/index.js b/packages/uni-app-plus-nvue/dist/index.js index 91cb12a79..4baa7405c 100644 --- a/packages/uni-app-plus-nvue/dist/index.js +++ b/packages/uni-app-plus-nvue/dist/index.js @@ -161,7 +161,7 @@ var serviceContext = (function () { return false } return page.$page.meta.isTabBar - } + } const route = __uniRoutes.find(route => route.path.slice(1) === path); return route && route.meta.isTabBar } catch (e) { @@ -174,6 +174,10 @@ var serviceContext = (function () { function base64ToArrayBuffer (data) { return base64Arraybuffer_2(data) + } + + function arrayBufferToBase64 (data) { + return base64Arraybuffer_1(data) } function callApiSync (api, args, name, alias) { @@ -2025,7 +2029,7 @@ var serviceContext = (function () { required: true }]; - const arrayBufferToBase64 = [{ + const arrayBufferToBase64$1 = [{ name: 'arrayBuffer', type: [ArrayBuffer, Uint8Array], required: true @@ -2033,7 +2037,7 @@ var serviceContext = (function () { var require_context_module_0_0 = /*#__PURE__*/Object.freeze({ base64ToArrayBuffer: base64ToArrayBuffer$1, - arrayBufferToBase64: arrayBufferToBase64 + arrayBufferToBase64: arrayBufferToBase64$1 }); const canIUse = [{ @@ -3713,13 +3717,13 @@ var serviceContext = (function () { return base64Arraybuffer_2(str) } - function arrayBufferToBase64$1 (buffer) { + function arrayBufferToBase64$2 (buffer) { return base64Arraybuffer_1(buffer) } var require_context_module_1_0 = /*#__PURE__*/Object.freeze({ base64ToArrayBuffer: base64ToArrayBuffer$2, - arrayBufferToBase64: arrayBufferToBase64$1 + arrayBufferToBase64: arrayBufferToBase64$2 }); var platformSchema = {}; @@ -6079,53 +6083,64 @@ var serviceContext = (function () { } } - let socketTaskId = 0; const socketTasks = {}; const publishStateChange$2 = (res) => { publish('onSocketTaskStateChange', res); }; - const createSocketTaskById = function (socketTaskId, { - url, - data, - header, - method, - protocols - } = {}) { - // fixed by hxy 需要测试是否支持 arraybuffer - const socket = requireNativePlugin('webSocket'); - socket.WebSocket(url, Array.isArray(protocols) ? protocols.join(',') : protocols); - // socket.binaryType = 'arraybuffer' - socketTasks[socketTaskId] = socket; - + let socket; + function getSocket () { + if (socket) { + return socket + } + socket = requireNativePlugin('uni-webSocket'); socket.onopen(function (e) { publishStateChange$2({ - socketTaskId, + socketTaskId: e.id, state: 'open' }); }); socket.onmessage(function (e) { + const data = e.data; publishStateChange$2({ - socketTaskId, + socketTaskId: e.id, state: 'message', - data: e.data + data: typeof data === 'object' ? base64ToArrayBuffer(data.base64) : data }); }); socket.onerror(function (e) { publishStateChange$2({ - socketTaskId, + socketTaskId: e.id, state: 'error', - errMsg: e.message + errMsg: e.data }); }); socket.onclose(function (e) { + const socketTaskId = e.id; delete socketTasks[socketTaskId]; publishStateChange$2({ socketTaskId, state: 'close' }); }); + return socket + } + + const createSocketTaskById = function (socketTaskId, { + url, + data, + header, + method, + protocols + } = {}) { + const socket = getSocket(); + socket.WebSocket({ + id: socketTaskId, + url, + protocol: Array.isArray(protocols) ? protocols.join(',') : protocols + }); + socketTasks[socketTaskId] = socket; return { socketTaskId, errMsg: 'createSocketTask:ok' @@ -6133,13 +6148,14 @@ var serviceContext = (function () { }; function createSocketTask (args) { - return createSocketTaskById(++socketTaskId, args) + return createSocketTaskById(String(Date.now()), args) } function operateSocketTask (args) { const { operationType, code, + reason, data, socketTaskId } = unpack(args); @@ -6152,13 +6168,23 @@ var serviceContext = (function () { switch (operationType) { case 'send': if (data) { - socket.send(data); + socket.send({ + id: socketTaskId, + data: typeof data === 'object' ? { + '@type': 'binary', + base64: arrayBufferToBase64(data) + } : data + }); } return { errMsg: 'operateSocketTask:ok' } case 'close': - socket.close(code); + socket.close({ + id: socketTaskId, + code, + reason + }); delete socketTasks[socketTaskId]; return { errMsg: 'operateSocketTask:ok' -- GitLab