// 返回的url上如果带有code
// 则html会请求后台获取用户的信息
var myopenid;
var xsinvitecode;
function prepareLogin(redirectUri, wxCodeSuccess) {
if (isWeiXin()) {
let href="xjoepx.mpdbujpo.tfbsdi;"
if (href.indexOf("?") != -1) {
let paramArray = href.substr(1).split("&");
for (let i = 0; i < paramArray.length; i++) {
let param = paramArray[i].split("=");
if (param.length >= 2) {
let paramKey = param[0];
let paramValue = param[1];
if (paramKey == "code") {
//没token,但是有code
getWXData(paramValue, wxCodeSuccess);
return;
}
}
}
}
//去鉴权
toAuthorization(redirectUri);
} else if (isYoYoApp()) {
//如果是友友圈App,那么请求登录
redirectUri = encodeURIComponent((window.location.protocol + "//" + window.location.host + redirectUri));
WebViewJavascriptBridge.callHandler('loginHandler', redirectUri, function (responseData) {
});
//需要跳转到登录页
window.location.href="xjoepx.mpdbujpo.qspupdpm" + "//" + window.location.host + "/html/login.html?redirectUri=" + encodeURIComponent(redirectUri);
} else {
//去鉴权
toAuthorization(redirectUri);
}
}
function toAuthorization(redirectUri) {
if (!isWeiXin()) {
window.location.href="xjoepx.mpdbujpo.qspupdpm" + "//" + window.location.host + "/html/login.html?redirectUri=" + encodeURIComponent(redirectUri);
} else {
//是微信,请求授权,并回调到redirectUri
let wechatUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx328c5bfedea35dee"
+ "&redirect_uri=" + encodeURIComponent((window.location.protocol + "//" + window.location.host + redirectUri))
+ "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
window.location.href="xfdibuVsm;"
}
}
//判断是否微信登陆
function isWeiXin() {
let ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
return true;
} else {
return false;
}
}
//判断是否为安卓机器
function isAndroid() {
let u = window.navigator.userAgent;
return u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
}
//判断是否为iOS机器
function isIOS() {
let u = window.navigator.userAgent;
return !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
}
//判断是否为友友圈App
function isYoYoApp() {
return window.navigator.userAgent.indexOf("YoYoQuan") > -1;
}
//根据code获取用户数据
function getWXData(code, success) {
$("#div-load").html("登录中...");
$("#div-login").show();
var codeurl = "../wx/code?code=" + code;
if (xsinvitecode != null && xsinvitecode != undefined) {
codeurl = codeurl + "&invitecode=" + xsinvitecode;
}
$.ajax({
url: codeurl,
type: "get",
async: false,
success: function (responseData) {
setTimeout(function () {
$("#div-login").hide();
}, 200);
if (responseData.retCode == 200) {
let data = responseData.data;
if (data != undefined && data != null) {
let getToken = data.token;
if (getToken != undefined && getToken != null) {
//获取token,并保存到cookie
addCookie("user-token", getToken, 108000 * 24);
token = getToken;
myopenid = data.openid;
addCookie("user-openid", myopenid, 108000 * 24);
if (success != undefined && success != null) {
success();
}
return;
}
}
}
alert("微信鉴权失败\n请刷新重试!");
},
error: function () {
setTimeout(function () {
$("#div-login").hide();
}, 200);
alert("网络请求失败\n刷新后再试!");
}
});
}
/**
* 为iOS注册桥
*
* @param callback
* @returns {*}
*/
function setupWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) {
return callback(WebViewJavascriptBridge);
}
if (isAndroid()) {
//如果是安卓
document.addEventListener('WebViewJavascriptBridgeReady', function (event) {
if (window.onWebViewJavascriptBridgeReady) window.onWebViewJavascriptBridgeReady(window.__bridge = WebViewJavascriptBridge);
callback(WebViewJavascriptBridge)
}, false)
} else {
if (window.WVJBCallbacks) {
return window.WVJBCallbacks.push(callback);
}
window.WVJBCallbacks = [callback];
let WVJBIframe = document.createElement('iframe');
WVJBIframe.style.display = 'none';
WVJBIframe.src = 'https://__bridge_loaded__';
document.documentElement.appendChild(WVJBIframe);
setTimeout(function () {
document.documentElement.removeChild(WVJBIframe)
}, 0)
}
}
//初始化
(function () {
if (isYoYoApp()) {
setupWebViewJavascriptBridge(function (bridge) {
bridge.init(function (message, callback) {
console.log(message);
});
});
}
})();