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,251評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,915評論 18 139
  • 今天經歷了一個讓我恐懼焦慮擔心的事情,我被一個混亂的女士恐嚇,這讓我陷入2小時的混亂中,經過瑜伽的練習慢慢放下了這...
    豐盛富足的小帥哥閱讀 200評論 0 0
  • 今天來大姨媽見了紅。 高中的記憶也算遠行。 算是當頭一棒。 如果遇見我喜歡的大叔。 我會勇敢的跟他告白。 希望他能...
    等待的如如劉閱讀 192評論 0 0