提交 7147c358 编写于 作者: fxy060608's avatar fxy060608

fix(app): subscribeViewMethod support wrapper

上级 af605c93
...@@ -16,32 +16,22 @@ import { onPageReady, pageScrollTo } from './dom/page' ...@@ -16,32 +16,22 @@ import { onPageReady, pageScrollTo } from './dom/page'
const pageVm = { $el: document.body } as ComponentPublicInstance const pageVm = { $el: document.body } as ComponentPublicInstance
function wrapperViewMethod(fn: (...args: any[]) => void) {
return (...args: any[]) => {
onPageReady(() => {
fn.apply(null, args)
})
}
}
export function initViewMethods() { export function initViewMethods() {
const pageId = getCurrentPageId() const pageId = getCurrentPageId()
subscribeViewMethod(pageId) subscribeViewMethod(pageId, (fn: Function) => {
return (...args: any[]) => {
onPageReady(() => {
fn.apply(null, args)
})
}
})
registerViewMethod<{ reqs: Array<SelectorQueryRequest> }>( registerViewMethod<{ reqs: Array<SelectorQueryRequest> }>(
pageId, pageId,
'requestComponentInfo', 'requestComponentInfo',
wrapperViewMethod((args, publish) => { (args, publish) => {
requestComponentInfo(pageVm, args.reqs, publish) requestComponentInfo(pageVm, args.reqs, publish)
}) }
)
registerViewMethod(
pageId,
API_PAGE_SCROLL_TO,
wrapperViewMethod(pageScrollTo)
)
registerViewMethod(
pageId,
API_LOAD_FONT_FACE,
wrapperViewMethod(loadFontFace)
) )
registerViewMethod(pageId, API_PAGE_SCROLL_TO, pageScrollTo)
registerViewMethod(pageId, API_LOAD_FONT_FACE, loadFontFace)
} }
...@@ -10,10 +10,10 @@ function normalizeViewMethodName(pageId: number, name: string) { ...@@ -10,10 +10,10 @@ function normalizeViewMethodName(pageId: number, name: string) {
return pageId + '.' + name return pageId + '.' + name
} }
export function subscribeViewMethod(pageId: number) { export function subscribeViewMethod(pageId: number, wrapper?: Function) {
UniViewJSBridge.subscribe( UniViewJSBridge.subscribe(
normalizeViewMethodName(pageId, INVOKE_VIEW_API), normalizeViewMethodName(pageId, INVOKE_VIEW_API),
onInvokeViewMethod wrapper ? wrapper(onInvokeViewMethod) : onInvokeViewMethod
) )
} }
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册