jdjm
Version:
金融移动端 - jm
134 lines (127 loc) • 4.94 kB
JavaScript
/**
* @Author: Created By McChen
* @Date: 2016/5/24
* @Mail: chenjiahao@jd.com
* @Version: V1.0.0
*/
;(function (jm) {
/**============================
private
==============================*/
var browser = "default";
for (i in jm.getBrowserInfo().appType) {
if (jm.getBrowserInfo().appType[i]) {
browser = i;
}
}
if (browser == "jrApp" && window.jsBridgeV3 != undefined) {
window.jrBridge = window.jrBridge || jsBridgeV3.onReady();
} else {
window.jrBridge = null;
}
//M页登陆
function passportLogin(opts) {
if (opts.wqLogin) {
var sid = getCookie('wq_auth_token') ;
} else {
var sid = getUrlString("sid") || getUrlString("token") || getCookie("sid");
}
var toPassport = function() {
window.location.href = opts.loginUrl;
};
if (opts.haveLogin) { //强制重新登陆
toPassport();
} else {
if (sid) {
opts.trueFn && opts.trueFn(sid);
} else {
if (opts.autoLogin) {
toPassport();
} else {
opts.falseFn && opts.falseFn();
}
}
}
}
/**============================
public
==============================*/
jm.userDetective = {
isLogin: function(opts) {
var loginURL = opts.loginUrl || "//passport.m.jd.com/user/login.action?v=1&returnurl="; // 登录中间页地址
var wqLoginUrl = opts.wqLoginUrl || loginURL; // 微信手Q渠道的登录中间页
//'http://wq.jd.com/pinbind/pintokenredirect?biz=618active&url='
var returnURL = opts.returnUrl || window.location.href; //回调地址
var haveLogin = opts.haveLogin || false; //强制重新登陆一次
switch (browser) {
case "jrApp":
if (jm.getUrlString("token")) {
opts.trueFn(jm.getUrlString("token"))
} else {
if (window.jsBridgeV3) {
window.jrBridge = window.jrBridge || jsBridgeV3.onReady();
jrBridge.then(function () {
this.jsToGetResp(function (d) {
d = typeof d == 'object' ? d : JSON.parse(d);
if (d.data) {
opts.trueFn && opts.trueFn(d.data);
}
}, {type: 1, data: ''})
}).call(jrBridge);
} else {
alert("使用此方法请先引入jsBridge.js");
}
}
break;
case "wx":
passportLogin({
autoLogin: opts.autoLogin,
trueFn: opts.trueFn,
falseFn: opts.falseFn,
loginUrl: wqLoginUrl + encodeURIComponent(returnURL),
haveLogin: haveLogin,
wqLogin: opts.wqLoginUrl
});
break;
case "mqq":
passportLogin({
autoLogin: opts.autoLogin,
trueFn: opts.trueFn,
falseFn: opts.falseFn,
loginUrl: wqLoginUrl + encodeURIComponent(returnURL),
haveLogin: haveLogin,
wqLogin: opts.wqLoginUrl
});
break;
default:
passportLogin({
autoLogin: opts.autoLogin,
trueFn: opts.trueFn,
falseFn: opts.falseFn,
loginUrl: loginURL + encodeURIComponent(returnURL),
haveLogin: haveLogin
});
break;
}
},
toJrAppModule: function(opts) {
jrBridge.then(function() {
this.jsToNative({
type: opts.type,
productId: opts.proId || "",
isclose: opts.isclose || false
});
});
},
toJdStockModule: function(scheme) {
jrBridge.then(function() {
this.jsToGetResp(function(d) {
d = typeof d == "object" ? d : JSON.parse(d);
}, {
type: 21,
stockData: scheme
});
});
}
};
})(window.jm);