混合开发,app嵌套Vue H5,dsbridge.js的使用

说实话,刚接触混合开发就是用的dsbridge.js,真的是超级简洁、好用,上手也很容易。
api地址下载地址

既然是嵌套,那么肯定要解决的就是双方之间的通信问题——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)领进门儿,交流看俩人儿(你和原生)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐