与移动端通信

在混合开发时,一些 h5 页面经常会遇到与 app 交互,下面总结常用的场景

主动发事件,传值给app

常用的 sendApp.jsdemo 如下结构

class SendApp {
	constructor() {
		this.init()
	}
	init () {
		let platform = uni.getSystemInfoSync().platform
		this.isIos = platform === 'ios'
	}
	toJson (obj) {
		return JSON.stringify(obj)
	}
	// 安卓原生支付
	androidNativePay (orderNo, payType) {
		try {
			// payType 1:支付宝, 2:微信, 3:ios内购
			let obj = {orderNo: orderNo, payType: payType}
			let jsonStr = this.toJson(obj)
			if (this.isIos) {
        // ios不用管,使用小程序支付
				window.webkit.messageHandlers.androidNativePay.postMessage(jsonStr)
			} else {
				JsBridge.androidNativePay(jsonStr)
			}
		} catch(error) {
			console.log(error)
		}
	}
}
let sendApp = new SendApp()
export { sendApp }

app主动调h5的方法,进行传值

常用的 appReceive.jsdemo 如下结构

在单页面应用中引入

  1. jsBridgemain.js 引入,挂在全局 window 下,这样 appload webview 后可以调用

  2. sendApp 挂在 util 对象下,方便调用

最优: h5主动获取token

::: code-group

:::

Last updated

Was this helpful?