From f40da555571925db4d15e07d5bcf3c42c738809f Mon Sep 17 00:00:00 2001 From: jas0ncn Date: Sun, 2 Sep 2018 16:33:35 +0800 Subject: [PATCH] Improve: add promise callhandler api --- src/lib/jsBridge.ts | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/lib/jsBridge.ts b/src/lib/jsBridge.ts index 6cabdac..6c5cbd7 100644 --- a/src/lib/jsBridge.ts +++ b/src/lib/jsBridge.ts @@ -20,12 +20,12 @@ export interface JsBridgeAPI { /** * Register a javascript bridge event handle */ - registerHandler: (eventName: string, callback: (data: any, responseCallback: (param: any) => void) => void) => void + registerHandler: (eventName: string, callback?: (data: any, responseCallback: (param: any) => void) => void) => void /** * Call a native handle */ - callHandler: (handleName: string, data: any, responseCallback: (responseData: any) => void) => void + callHandler: (handleName: string, data?: any, responseCallback?: (responseData: any) => void) => void /** * Who knows @@ -114,6 +114,16 @@ export class JsBridge { document.documentElement.appendChild(WVJBIframe) setTimeout(() => document.documentElement.removeChild(WVJBIframe), 0) } + + public callHandler (handleName: string, data?: any) { + return new Promise(resolve => { + this.instance.callHandler( + handleName, + data || undefined, + resolve + ) + }) + } } export function setupJsBridge (callback) {