|
|
|
|
|
const getQueryObj = function(link) {
|
|
|
let loc = decodeURIComponent(document.location.href);
|
|
|
|
|
|
if (link) {
|
|
|
loc = decodeURIComponent(link);
|
|
|
}
|
|
|
let letiables = '';
|
|
|
let letiableArr = [];
|
|
|
let finalArr = [];
|
|
|
|
|
|
if (loc.indexOf('?') > 0) {
|
|
|
letiables = loc.split('?')[1];
|
|
|
}
|
|
|
|
|
|
if (letiables.length > 0) {
|
|
|
letiableArr = letiables.split('#')[0].split('&');
|
|
|
}
|
|
|
|
|
|
for (let i = 0; i < letiableArr.length; i++) {
|
|
|
let obj = {};
|
|
|
|
|
|
obj.name = letiableArr[i].split('=')[0];
|
|
|
obj.value = letiableArr[i].split('=')[1];
|
|
|
if (letiableArr[i].split('=').length > 2) {
|
|
|
for (let j = 2; j < letiableArr[i].split('=').length; j++) {
|
|
|
obj.value += '=' + letiableArr[i].split('=')[j];
|
|
|
}
|
|
|
}
|
|
|
finalArr.push(obj);
|
|
|
}
|
|
|
|
|
|
let query_obj = {};
|
|
|
|
|
|
for (let i = 0; i < finalArr.length; i++) {
|
|
|
query_obj[finalArr[i].name] = finalArr[i].value;
|
|
|
}
|
|
|
|
|
|
return query_obj;
|
|
|
};
|
|
|
|
|
|
const linkToMiniApp = function(goUrl, type) {
|
|
|
|
|
|
let url = goUrl || '';
|
|
|
|
|
|
if (url && url.indexOf('http') < 0 && type === 'other') {
|
|
|
url = document.location.protocol + '//' + document.location.host + url;
|
|
|
}
|
|
|
if (url) {
|
|
|
let scene;
|
|
|
|
|
|
if (type === 'product' || type === 'brand') {
|
|
|
scene = url;
|
|
|
} else {
|
|
|
let base_url = decodeURIComponent(url).split('?')[0];
|
|
|
let params = getQueryObj(url);
|
|
|
let paramStr = '';
|
|
|
|
|
|
Object.keys(params).forEach(function(key) {
|
|
|
paramStr += paramStr === '' ? '?' + key + '=' + params[key] : '&' + key + '=' + params[key];
|
|
|
});
|
|
|
scene = '/pages/webview/webview?url=' + base_url + encodeURIComponent(paramStr);
|
|
|
}
|
|
|
window.wx.miniProgram.navigateTo({url: scene});
|
|
|
return false;
|
|
|
} else {
|
|
|
return true;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
const createLinkButton = function(url, id) {
|
|
|
let a = document.createElement('a');
|
|
|
|
|
|
a.style.position = 'fixed';
|
|
|
a.style.top = 0;
|
|
|
a.style.left = 0;
|
|
|
a.style.border = 'none';
|
|
|
a.style.outline = 'none';
|
|
|
a.style.resize = 'none';
|
|
|
a.style.background = 'transparent';
|
|
|
a.style.color = 'transparent';
|
|
|
a.setAttribute('id', id);
|
|
|
a.setAttribute('href', url);
|
|
|
document.body.appendChild(a);
|
|
|
return a;
|
|
|
};
|
|
|
let env = '';
|
|
|
const getEnv = function() {
|
|
|
let envFlag = window.__wxjs_environment;
|
|
|
|
|
|
if (!envFlag && navigator.userAgent.match(/yohobuy/i)) {
|
|
|
env = 'app';
|
|
|
document.addEventListener('deviceready', function() {
|
|
|
});
|
|
|
} else if ((!envFlag && navigator.userAgent.match(/miniProgram/i)) || (envFlag === 'miniprogram')) {
|
|
|
env = 'miniprogram';
|
|
|
} else if (location.origin === 'https://www.yohobuy.com') {
|
|
|
env = 'pc';
|
|
|
} else {
|
|
|
env = 'h5';
|
|
|
}
|
|
|
return env;
|
|
|
};
|
|
|
|
|
|
module.exports = {
|
|
|
linkToMiniApp,
|
|
|
createLinkButton,
|
|
|
getEnv
|
|
|
}; |
...
|
...
|
|