YN项目客户端交互

jsb.js

实现js和客户端互相调用方法
客户端会给js提供一个名为JavascriptBridge变量

var API_NAMESPACE = '__JavascriptBridge__';
var API = window[API_NAMESPACE] || null;

JS中使用到的方法:(前端并不是很清楚这些方法具体做了什么)
API.require
API.setResult
API.getCommands
API.getUserInfoCallback
API.setJpushAlias
API.getZuid()

依赖于此API对象,实现了两种场景的交换:

    1. 给java调用的js方法
      例子:
//安卓客户端点击返回按钮        
native_android.jsb.addJavascriptMethod('backButtonCallback',function(message){
            if(message) {
                if(Object.prototype.toString.call(message)==="[object String]"){
                    message=JSON.parse(message);
                }
                if(message.page == "loading"){
                    com.jumpUrl("/bill?footer=1");
                }else if(message.page == "result"){
                    com.jumpUrl("/bill?footer=1");
                }
            }
        })

目前看到以下几个定义的js方法
shareCallback
statisticsCallback
backButtonCallback
alipayFailCallBack

    1. 调用java方法
      定义了require方法供js调用,核心还是依靠api.require
/**
     * 请求调用java方法
     * @param  {[type]}   cmd      [description]
     * @param  {[type]}   params   [description]
     * @param  {Function} callback [description]
     * @return {[type]}
     */
    context.require = function(cmd, params, callback){
        params = params || '{}';
        var result = api.require(cmd, JSON.stringify(params));
        if(callback && result){
            result = JSON.parse(result);
        }
        callback && callback(result);
    }

js具体调用

  • 主体项目只看到这两种类型
native_android.jsb.require('messagebox', {{type: "title", url_title:'***', need_back: true, hideMenu: true}})
native_android.jsb.require('messagebox', {type:"relogin"});
  
  • 授信项目有额外
//印尼通知客户端开启用户权限
native_android.jsb.require('messagebox', {type:"openAuthority"});
//印尼通知客户端获取用户权限
native_android.jsb.require('messagebox', {type:"getAuthority"});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,368评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,948评论 18 139
  • 今天经历了一个让我恐惧焦虑担心的事情,我被一个混乱的女士恐吓,这让我陷入2小时的混乱中,经过瑜伽的练习慢慢放下了这...
    丰盛富足的小帅哥阅读 205评论 0 0
  • 今天来大姨妈见了红。 高中的记忆也算远行。 算是当头一棒。 如果遇见我喜欢的大叔。 我会勇敢的跟他告白。 希望他能...
    等待的如如刘阅读 192评论 0 0