import base from '@/config/baseUrl'; import store from '@/store'; import $http from '@/config/requestConfig' import { getLocation, setShare } from '@/plugins/wxJsSDK'; /** * APP内嵌网页 -- 安卓IOS交互 */ export const appMutual = (name, query = null, errCallback) => { if (/android/i.test(navigator.userAgent)) { if (window.shangChengView) { if (typeof(query) == "object") { query = JSON.stringify(query); } window.shangChengView[name](query); } else { errCallback && errCallback(); } } else if (/ios|iphone|ipod|pad/i.test(navigator.userAgent)) { if (window.webkit) { window.webkit.messageHandlers[name].postMessage(query) } else { errCallback && errCallback(); } } }; /** * 获取url中的参数 */ export const getUrlData = () => { var strs; var url = window.location.href; //获取url中"?"符后的字串 var theRequest = new Object(); if (url.indexOf("?") != -1) { url = url.substr(url.indexOf("?")); var str = url.substr(1); strs = str.split("&"); for (var i = 0; i < strs.length; i++) { var index = strs[i].indexOf("="); theRequest[strs[i].slice(0, index)] = unescape(strs[i].slice(index + 1, strs[i].length)); } } return theRequest; } //公众号微信支付 export const wxPublicPay = (payInfo, callback) => { $http.get("api/pay/v1/pay_public_wx", { orderNo: payInfo.orderNo }).then(data => { let wxConfigObj = { appId: data.appId, timeStamp: data.timeStamp, nonceStr: data.nonceStr, package: data.package, signType: data.signType, paySign: data.sign }; function onBridgeReady() { window.WeixinJSBridge.invoke("getBrandWCPayRequest", wxConfigObj, function( res ) { if (res.err_msg == "get_brand_wcpay_request:ok") { callback && callback(res); } else // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 if (res.err_msg == "get_brand_wcpay_request:cancel") { // common.loadWarn('支付遇到问题,您取消了支付'); } else if (res.err_msg == "get_brand_wcpay_request:fail") { // common.myConfirm('支付遇到问题,您可能需要重新登录', '', function () { // obj.wxLoginOAuth(); // }); } }); } if (typeof window.WeixinJSBridge == "undefined") { if (document.addEventListener) { document.addEventListener("WeixinJSBridgeReady", onBridgeReady, false); } else if (document.attachEvent) { document.attachEvent("WeixinJSBridgeReady", onBridgeReady); document.attachEvent("onWeixinJSBridgeReady", onBridgeReady); } } else { onBridgeReady(); } }); }; // 浏览器判断 // export const getBrowser = () => { // let ua = navigator.userAgent.toLowerCase(); // if (ua.match(/MicroMessenger/i) == "micromessenger") { // return "微信"; // } // return "其他"; // }; // 获取地址信息(公众号获取 或 内嵌APP获取) export const getLatLonH5 = function(successCallback, errCallback) { if (getBrowser() == '微信') { getLocation().then(res => { successCallback(res); }, err => { console.log("位置信息错误", err); errCallback("位置信息获取失败"); }); } else { let clearTime = setTimeout(() => { errCallback("获取经纬度超时"); }, 5000); window.getAppLatLon = function(res) { clearTimeout(clearTime); successCallback(res); } appMutual("getAppLatLon", true); } }; // 公众号分享 export const publicShareFun = function(info = {}, callback) { if (getBrowser() == "微信") { let shareInfo = { title: info.shareTitle || info.title || base.share.title, desc: info.desc || info.shareContent || base.share.desc, imgUrl: info.imgUrl || info.shareImg || base.share.imgUrl, link: info.link || info.shareUrl || base.share.link, }; setShare(shareInfo, callback); } } // export const h5Login = function(type = "judge", callback) { // // var getRequest = getUrlData(); // if (getBrowser() == "微信") { // uni.reLaunch({ // url: "/pages/login/login" // }); // } else { // appMutual("jumpLogin", null, function() { // if (type == "force") { // uni.reLaunch({ // url: "/pages/login/login" // }); // }else{ // uni.showModal({ // title:"提示", // content:"您还未登录,请先登录~", // confirmText: "去登录", // cancelText: "再逛会", // success: (res) => { // if(res.confirm){ // uni.reLaunch({ // url: "/pages/login/login" // }); // } // } // }); // } // }); // } // }