Files
peko-h5/view/peko/activity/channel/js/common.js
2022-09-08 18:22:18 +08:00

307 lines
8.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

function render (templateId, templateData, target) {
var html = template(templateId, templateData);
target.innerHTML += html;
}
function dateFormat (date, fmt) {
date = new Date(date);
var o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()
};
// 补全0
function padLeftZero(str) {
return('00' + str).substr(str.length);
}
// 年份
if(/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
// 月日时分秒
for(var k in o) {
if(new RegExp('(' + k + ')').test(fmt)) {
var str = o[k] + '';
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
}
}
date = o = padLeftZero = null;
return fmt;
}
function convert (_url) {
var patt=/\d+/;
var num=_url.match(patt);
var rs={};
rs.uid=num[0];
return rs;
}
// 传递分享信息给客户端,showUrl为分享的页面链接,为空时表示不分享
// function shareInfo () {
// var _url = 'http://www.erbanyy.com/modules/bonus/fight.html';
// var res = EnvCheck();
// if (res == 'test'){
// _url = 'http://beta.erbanyy.com/modules/bonus/fight.html';
// }
// var info = {
// title: '耳伴与你一起红',
// imgUrl: 'http://www.erbanyy.com/home/images/logo.png',
// desc: '登录即送20红包每天还有分享红包邀请红包分成红包四重红包大礼等你来拿',
// showUrl: _url
// };
// return JSON.stringify(info);
// }
// 根据域名适配环境
function EnvCheck() {
if(window.location.href){
var _url = window.location.href;
var res = _url.match(/beta/);
if(res){
return 'test';
}else{
return 'live';
}
}
}
// 根据域名判断是本地打开还是服务器打开
function locateJudge() {
if(window.location.href){
var _url = window.location.href;
var res = _url.match(/test/);
if(res){
return '/api';
}else{
return '';
}
}
}
// 获取地址栏参数
function getQueryString(){
var _url = location.search;
var theRequest = new Object();
if(_url.indexOf('?') != -1){
var str = _url.substr(1);
strs = str.split('&');
for(var i in strs){
theRequest[strs[i].split('=')[0]] = decodeURI(strs[i].split('=')[1]);
}
}
return theRequest;
}
// 判断浏览器内核,手机类型
function checkVersion(){
var u = navigator.userAgent, app = navigator.appVersion;
return {
trident: u.indexOf('Trident') > -1, //IE内核
presto: u.indexOf('Presto') > -1, //opera内核
webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1,//火狐内核
mobile: !!u.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端
iPhone: u.indexOf('iPhone') > -1 , //是否为iPhone或者QQHD浏览器
iPad: u.indexOf('iPad') > -1, //是否iPad
webApp: u.indexOf('Safari') == -1, //是否web应该程序没有头部与底部
weixin: u.indexOf('MicroMessenger') > -1, //是否微信
qq: u.match(/\sQQ/i) == " qq", //是否QQ
app: u.match('mengshengApp') == 'mengshengApp' //是否在app内
};
}
// 图片预加载
function preloadImage(obj){
var loadLength = 0,newImages = [];
for(var i = 0;i < obj.imageArr.length;i++){
newImages[i] = new Image();
newImages[i].src = obj.imageArr[i];
newImages[i].onload = newImages[i].onerror = function(){
loadLength++;
typeof obj.preloadPreFunc === 'function' && obj.preloadPreFunc(loadLength);
if(loadLength == obj.imageArr.length){
typeof obj.doneFunc === 'function' && obj.doneFunc();
}
}
}
}
// 判断是否在App内
function isApp() {
var androidBol = false;
var osBol = false;
if(window.androidJsObj && typeof window.androidJsObj === 'object'){
androidBol = true;
}
if(window.webkit){
console.log(window.webkit);
osBol = true;
}
return (androidBol || osBol);
}
function msMask(channel,tags,params) {
//此函数用于一般的耳伴底层面罩
var browser = checkVersion();
var env = EnvCheck();
// params = params? params:0;
var bol = $.isEmptyObject(params);
var jsonStr = '';
if(!bol) {
jsonStr = JSON.stringify(params);
}
if(!browser.app){
$('#mask').css('display','flex');
var linkData = {
type: env,
channel: channel,
tags: tags,
// ios_custom_url: "https://itunes.apple.com/cn/app/id1252542069?mt=8",
params: jsonStr
// '{"uid":"' + params + '"}'
};
linkedme.init("414571f0698afaa1c194f345f0dcc328", {type: env}, null);
linkedme.link(linkData, function(err, response){
if(err){
// 生成深度链接失败返回错误对象err
console.log('err:',err);
} else {
console.log(response);
$('#download a').attr("href",response.url);
$('.download a').attr('href',response.url);
}
},false);
}else{
$('#share-mask').css('display','flex');
}
}
function wxConfig() {
var wxurl = encodeURIComponent(location.href.split('#')[0]);
var data ="url=" + wxurl;
console.log(data);
$.ajax({
type:'GET',
url: '/wx/config',
data: data,
asyc: true,
success: function (data) {
if(data.code = 200){
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来若要查看传入的参数可以在pc端打开参数信息会通过log打出仅在pc端时才会打印。
appId: data.data.appId, // 必填,公众号的唯一标识
timestamp: data.data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.data.nonceStr, // 必填,生成签名的随机串
signature: data.data.signature,// 必填签名见附录1
jsApiList: data.data.jsApiList // 必填需要使用的JS接口列表所有JS接口列表见附录2
});
wx.error(function(res){
console.log('config error,msg:'+res);
});
}
},
error:function(res){
console.log('config error,msg:'+res);
}
})
}
// function refreshWeb() {
// window.location.href = window.location.href;
// }
$('#share-mask .shareBtn').on('click',function () {
var browser = checkVersion();
if (browser.app) {
if (browser.android) {
window.androidJsObj.openSharePage();
} else if (browser.ios) {
window.webkit.messageHandlers.openSharePage.postMessage(null);
}
}
})
/**
* 渲染列表组件
* @param templateId 组件的id
* @param $target 渲染目标dom
* @param attrParam 属性名,格式 {'.class':['dataAttr',type]}
* @param data 渲染数据的数组
*/
function templateList(templateId,$target,attrParam,data){
var $template = $(templateId);
var str = $template.html();
for(var i = 0;i < data.length;i++){
var $list = $(str);
$target.append($list);
for(var j in attrParam){
if(attrParam[j][1] == 1){
$list.find(j + ' img').attr('src',data[i][attrParam[j][0]]);
}else if(attrParam[j][1] == 2){
$list.find(j).html(data[i][attrParam[j][0]]);
}
}
}
}
function initNav(obj) {
if($.isEmptyObject(obj)){
return;
}
var browser = checkVersion();
if(browser.app){
if(browser.ios){
window.webkit.messageHandlers.initNav.postMessage(obj);
}else if(browser.android){
var json = JSON.stringify(obj);
window.androidJsObj.initNav(json);
}
}
}
var tranUrl = 'http://www.if66.cn';
var tools = {
cookieUtils: {
set: function(key, val, time) {
var date = new Date();
var expiresDays = time;
date.setTime(date.getTime() + expiresDays * 24 * 3600 * 1000);
document.cookie = key + '=' + val + ';expires=' + date.toGMTString();
},
get: function(key) {
// 获取cookie参数
var getCookie = document.cookie.replace(/[ ]/g,'');
var arrCookie = getCookie.split(';');
var val;
for(var i = 0 ; i < arrCookie.length ; i++) {
var arr = arrCookie[i].split('=');
if(key === arr[0]) {
val = arr[1];
break;
}
}
return val;
},
delete: function(key) { //删除cookie方法
var date = new Date(); //获取当前时间
date.setTime(date.getTime() - 10000); //将date设置为过去的时间
document.cookie = key + '=v; expires =' + date.toGMTString(); //设置cookie
}
}
}