给原生发消息,想在回调中判断回调的结果进行操作,结果发现安卓和IOS都收不到回调的返回值。
分析是因为利用jsBridge给原生发消息是同步方法,调用即结束了,前端已经拿不到回调结果。可以在回调中做操作,但不能利用原生的返回值做 if 条件来判断。
所以,还需要进行的处理是给原生发消息,原生在完成了必要的操作以后,再调用jsBridge给前端发一个消息,通知已经完成,再交由前端处理。
先给原生发消息
toDownLoad (product_id) {
var view = this
var param = {"loginType": "2"}
this.JsBridge.callHandler("tellAppLogin", param, (res) => {
console.log(res)
});
}
原生拉起登陆页并登陆完成以后给前端发消息
created () {
var view = this
this.initJsBridge()
this.JsBridge.registerHandler("tellAppLoginCallBack" ,(res , callback) => {
view.toWebTask('mall','https://www.baidu.com','1')
callback('Success')
})
},