From 5e07520da8f2038fb82ee44f254cf14cbe334c71 Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Fri, 12 Nov 2021 17:52:25 +0800 Subject: [PATCH] feat(app): add navigateToMiniProgram --- .../uni-app-plus/dist/uni-app-service.es.js | 17 ++++++++-- .../uni-app-plus/src/service/api/index.ts | 1 + .../service/api/plugin/requireNativePlugin.ts | 2 -- .../src/service/api/plugin/sdk.ts | 32 +++++++++++++++++++ 4 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 packages/uni-app-plus/src/service/api/plugin/sdk.ts diff --git a/packages/uni-app-plus/dist/uni-app-service.es.js b/packages/uni-app-plus/dist/uni-app-service.es.js index 40cc3d392..ebf59fab0 100644 --- a/packages/uni-app-plus/dist/uni-app-service.es.js +++ b/packages/uni-app-plus/dist/uni-app-service.es.js @@ -6856,8 +6856,7 @@ var serviceContext = (function (vue) { function sendNativeEvent(event, data, callback) { // 实时获取weex module(weex可能会变化,比如首页nvue加速显示时) return requireNativePlugin('plus').sendNativeEvent(event, data, callback); - } - const sendHostEvent = sendNativeEvent; + } const getClipboardData = defineAsyncApi(API_GET_CLIPBOARD_DATA, (_, { resolve, reject }) => { const clipboard = requireNativePlugin('clipboard'); @@ -12136,6 +12135,17 @@ var serviceContext = (function (vue) { __uniConfig.serviceReady = true; } + const sendHostEvent = sendNativeEvent; + const API_NAVIGATE_TO_MINI_PROGRAM = 'navigateToMiniProgram'; + const navigateToMiniProgram = defineAsyncApi(API_NAVIGATE_TO_MINI_PROGRAM, (data, { resolve, reject }) => { + sendHostEvent(API_NAVIGATE_TO_MINI_PROGRAM, data, (res) => { + if (res.errMsg && res.errMsg.indexOf(':ok') === -1) { + return reject(res.errMsg.split(' ')[1]); + } + resolve(); + }); + }); + const EventType = { load: 'load', close: 'close', @@ -12898,9 +12908,10 @@ var serviceContext = (function (vue) { requestPayment: requestPayment, requireNativePlugin: requireNativePlugin, sendNativeEvent: sendNativeEvent, - sendHostEvent: sendHostEvent, __vuePlugin: index$1, restoreGlobal: restoreGlobal, + sendHostEvent: sendHostEvent, + navigateToMiniProgram: navigateToMiniProgram, createRewardedVideoAd: createRewardedVideoAd, createFullScreenVideoAd: createFullScreenVideoAd, createInterstitialAd: createInterstitialAd, diff --git a/packages/uni-app-plus/src/service/api/index.ts b/packages/uni-app-plus/src/service/api/index.ts index 2f93ed771..a7b032d0b 100644 --- a/packages/uni-app-plus/src/service/api/index.ts +++ b/packages/uni-app-plus/src/service/api/index.ts @@ -63,6 +63,7 @@ export * from './plugin/requestPayment' export * from './plugin/requireNativePlugin' export * from './plugin/vuePlugin' export * from './plugin/restoreGlobal' +export * from './plugin/sdk' export * from './ad/rewardedVideoAd' export * from './ad/fullScreenVideoAd' diff --git a/packages/uni-app-plus/src/service/api/plugin/requireNativePlugin.ts b/packages/uni-app-plus/src/service/api/plugin/requireNativePlugin.ts index e57f8f2e6..2b592e327 100644 --- a/packages/uni-app-plus/src/service/api/plugin/requireNativePlugin.ts +++ b/packages/uni-app-plus/src/service/api/plugin/requireNativePlugin.ts @@ -17,5 +17,3 @@ export function sendNativeEvent( // 实时获取weex module(weex可能会变化,比如首页nvue加速显示时) return requireNativePlugin('plus').sendNativeEvent(event, data, callback) } - -export const sendHostEvent = sendNativeEvent diff --git a/packages/uni-app-plus/src/service/api/plugin/sdk.ts b/packages/uni-app-plus/src/service/api/plugin/sdk.ts new file mode 100644 index 000000000..119c8c943 --- /dev/null +++ b/packages/uni-app-plus/src/service/api/plugin/sdk.ts @@ -0,0 +1,32 @@ +import { defineAsyncApi } from '@dcloudio/uni-api' +import { sendNativeEvent } from './requireNativePlugin' + +export const sendHostEvent = sendNativeEvent + +const API_NAVIGATE_TO_MINI_PROGRAM = 'navigateToMiniProgram' + +interface NavigateToMiniProgramOpitons { + success?: (result: any) => void + fail?: (result: any) => void + complete?: (result: any) => void +} +type API_TYPE_NAVIGATE_TO_MINI_PROGRAM = ( + options: NavigateToMiniProgramOpitons +) => void + +export const navigateToMiniProgram = + defineAsyncApi( + API_NAVIGATE_TO_MINI_PROGRAM, + (data, { resolve, reject }) => { + sendHostEvent( + API_NAVIGATE_TO_MINI_PROGRAM, + data, + (res: { errMsg: string }) => { + if (res.errMsg && res.errMsg.indexOf(':ok') === -1) { + return reject(res.errMsg.split(' ')[1]) + } + resolve() + } + ) + } + ) -- GitLab