美文网首页
YN项目客户端交互

YN项目客户端交互

作者: wali_lilingyun | 来源:发表于2017-09-23 17:30 被阅读0次

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"});

相关文章

  • YN项目客户端交互

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

  • YN

    10.24~程序员日 对你的祝福我的心愿~2017快过过 2018不畏下一刻且向前

  • 入门

    一、与ES交互 9300端口:集群交互端口,无数据的节点客户端和传输客户端也使用该端口。 9200:http数据交...

  • 使用nodejs实现web服务器与客户端的交互

    使用nodejs实现web服务器与客户端的交互 使用nodejs实现web服务器与客户端的交互 1.实验目的: 使...

  • leaf 和cocos creator 游戏实战(一)使用pro

    项目目的: 开发一个交互性的小游戏,限于服务端经验较少,故开始学习leaf框架,客户端用cocos creator...

  • Protocol Buffer使用简介

    我们项目中使用protocol buffer来进行服务器和客户端的消息交互,服务器使用C++,所以本文主要描述pr...

  • 董西城《深入解析YARN》-第5章 RespourceManag

    5.1 Resourcemanager 概述 ❑与客户端交互,处理来自客户端的请求;❑启动和管理Applicat...

  • 被威胁过的旅途

    今天同嫂子聊起曾经去yn旅游的事情。那次我们一起先去gz,然后再去yn,到yn后,我们便分开去了不同的地方。 因为...

  • UIWebView崩溃 -WebThread (18)

    现在写的一个项目是嵌套H5页面,同时需要和H5做交互。但是在H5交互后跳转到IOS原生客户端时会出现崩溃。 查原因...

  • 写一个redis set命令的客户端

    客户端与服务端交互,需要遵从协议标准,否则交互无从谈起。比如http客户端与http服务端通信,需要遵从h...

网友评论

      本文标题:YN项目客户端交互

      本文链接:https://www.haomeiwen.com/subject/gqbcextx.html