与移动端通信
在混合开发时,一些 h5 页面经常会遇到与 app 交互,下面总结常用的场景
主动发事件,传值给app
常用的 sendApp.js 的 demo 如下结构
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.js 的 demo 如下结构
在单页面应用中引入
jsBridge在main.js引入,挂在全局window下,这样app在load webview后可以调用sendApp挂在util对象下,方便调用
最优: h5主动获取token
::: code-group
:::
Last updated
Was this helpful?