混合开发,app嵌套H5,dsbridge.js的使用
混合开发,app嵌套H5,dsbridge.js的使用和优缺点说实话,刚接触混合开发就是用的dsbridge.js,真的是超级简洁、好用
·
混合开发,app嵌套Vue H5,dsbridge.js的使用
既然是嵌套,那么肯定要解决的就是双方之间的通信问题——dsBridge.register() 和dsBridge.call();
dsBridge.register():js接受传值的方法(我们这里只说前端,不说安卓和ios);
dsBridge.call():js向原生传值的方法。
Vue项目中使用:
import bridge from '../../assets/js/dsbridge.js'//引入js
// 注册一个APP返回事件
var that = this
bridge.register("send_user_click_back",function(){
if(that.type==1){
bridge.call("onHomeBack");
}else if(that.type==3){
that.$router.push('/integral?token='+that.token)
}else if(that.type==4){
that.$router.push('/experience?token='+that.token)
}else{
bridge.call("onHomeBack");
}
})//register注册一个app原生定义好的事件,当原生触发该事件时,
//前端这里就会监听到,进行一些业务操作。call前端主动触发与原生约定好的方法,进而给原生传值,
//以希望原生做出一些操作。(register和call的事件都不是凭空捏造,而是前端和原生双方开发时协商好的方法。)
完整的方法示例
dsBridge.register('funName', function (data) {
//funName:方法名,data:原生传过来的数据
});
dsBridge.call('funName', 'data', function (res) {
//funName:方法名,data:前端传给原生的数据,res:原生返回的回调
})
一件有趣的事:在混合开发的时候有一个人麻了的问题就是,页面导航头用谁的的问题。这个可是有区别的,1,如果用原生的,就像我最上面代码示例的一样,原生每次触发返回,都要告诉我它要返回了,然后我再根据当前页面决定我是往哪跳,换言之就是这种方式是原生主动,我被动,但是不用操心画导航头了。2,如果是用我们自己的,就要提前告诉原生我不用你的头啊,我自己来,免得出现一个页面两个头的情况,当然开发之初就可以说好避免掉。
注意事项:因为是混合开发了,不同于自己单打独斗了,尤其是第一次接触混合开发的同志一定要勤于沟通,有问题及时反馈!尤其是一些交互上面,如果没有对应的方法提供,及时大胆的问原生要哦(如果跟你对接的跟你不在一个地方上班,天高皇帝远的,你再不主动怎么擦出火花和基情呢!)。总之遵循一个原则:媒婆(dsbridge.js)领进门儿,交流看俩人儿(你和原生)
更多推荐
已为社区贡献3条内容
所有评论(0)