From 3abb8b2a8b339e9407a984341c73f258f3ad4d56 Mon Sep 17 00:00:00 2001 From: DCloud_LXH <283700113@qq.com> Date: Thu, 16 Sep 2021 11:11:10 +0800 Subject: [PATCH] feat(App): configMTLS --- lib/apis.js | 5 ++-- src/core/helpers/protocol/network/request.js | 15 +++++++++++- .../app-plus/service/api/network/request.js | 24 +++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/lib/apis.js b/lib/apis.js index b4e63a8ce..95c42152f 100644 --- a/lib/apis.js +++ b/lib/apis.js @@ -17,7 +17,8 @@ const network = [ 'onSocketMessage', 'closeSocket', 'onSocketClose', - 'getUpdateManager' + 'getUpdateManager', + 'configMTLS' ] const route = [ @@ -268,4 +269,4 @@ const apis = [ ...ad ] -module.exports = apis +module.exports = apis diff --git a/src/core/helpers/protocol/network/request.js b/src/core/helpers/protocol/network/request.js index 44b0e34d6..1080acc86 100644 --- a/src/core/helpers/protocol/network/request.js +++ b/src/core/helpers/protocol/network/request.js @@ -1,6 +1,7 @@ import { hasOwn, - isPlainObject + isPlainObject, + toRawType } from 'uni-shared' const method = { @@ -108,3 +109,15 @@ export const request = { type: Number } } + +export const configMTLS = { + certificates: { + type: Array, + required: true, + validator (value) { + if (value.some(item => toRawType(item.host) !== 'String')) { + return '参数配置错误,请确认后重试' + } + } + } +} \ No newline at end of file diff --git a/src/platforms/app-plus/service/api/network/request.js b/src/platforms/app-plus/service/api/network/request.js index 470eecc8d..e009add74 100644 --- a/src/platforms/app-plus/service/api/network/request.js +++ b/src/platforms/app-plus/service/api/network/request.js @@ -8,6 +8,10 @@ import { base64ToArrayBuffer } from '../../bridge' +import { + invoke +} from 'uni-core/service/bridge' + let requestTaskId = 0 const requestTasks = {} @@ -188,3 +192,23 @@ export function operateRequestTask ({ errMsg: 'operateRequestTask:fail' } } + +export function configMTLS ({certificates}, callbackId) { + const stream = requireNativePlugin('stream') + stream.configMTLS(certificates, ({type, code, message}) => { + switch (type) { + case 'success': + invoke(callbackId, { + errMsg: 'configMTLS:ok', + code + }) + break; + case 'fail': + invoke(callbackId, { + errMsg: 'configMTLS:fail ' + message, + code + }) + break; + } + }); +} \ No newline at end of file -- GitLab