APP调用H5
/**
* 这里注入一些全局方法供app端使用
*/
export function injectGlobalProps(name: string | Record<string, any>, callback?: Function) {
// if (isApp() || __MODE__ === 'start') {
if (!window.INVITATION_CARD) {
window.INVITATION_CARD = {}
}
if (isString(name)) {
window.INVITATION_CARD[name] = callback
} else if (isPlainObj(name)) {
Object.keys(name).forEach((key) => {
window.INVITATION_CARD[key] = name[key]
})
}
// }
}
H5调用APP
/**
* 调用app端注入的方法
* onEditElement(element: 元素数据) 编辑元素 点击元素,将元素数据传过app
* onEditImage({ element: ImageElement, allImageElements: ImageElement[] }) 编辑图片 allImageElements 当前请帖所有图片数据
*/
export function callAppBridge(name: string, params?: any) {
try {
if (name) {
console.log(name, params)
if (isAndroid() && window.messageHandlers && window.messageHandlers[name]) {
window.messageHandlers[name](JSON.stringify(params))
} else if (window.webkit?.messageHandlers?.[name]) {
window.webkit.messageHandlers[name].postMessage(params)
} else {
console.log('不存在的方法' + name)
}
}
} catch (e) {
console.log(e)
}
}
需要APP提前将方法写入的messageHandlers中