/** * 获取动态广告栏属性 * @param type * @returns {Object|*} */ // url转base64 方法 // base64 编码 function getBase64Image(img) { var canvas = document.createElement('canvas') canvas.width = img.width canvas.height = img.height var ctx = canvas.getContext('2d') ctx.drawImage(img, 0, 0, img.width, img.height) var dataURL = canvas.toDataURL('image/png') return dataURL } function getImage64Url(url, ref) { // var that = this var image = document.createElement('img') image.setAttribute('crossorigin', 'anonymous') image.src = url + '?v=' + Math.random() // 处理缓存 image.crossOrigin = 'anonymous' image.onload = function () { var base64 = getBase64Image(image) console.log(base64); } } // var ua = window.navigator.userAgent // let _isIOS = -1; // function isIOS() { // if (_isIOS === -1) { // _isIOS = /iPhone|iPod|iPad/i.test(ua) ? 1 : 0; // } // return _isIOS === 1; // } var getActive = { // 版本号 version: '0.0.1', drawBase64Image: function (img) { var canvas = document.createElement('canvas') canvas.width = img.width canvas.height = img.height var ctx = canvas.getContext('2d') ctx.drawImage(img, 0, 0, img.width, img.height) var dataURL = canvas.toDataURL('image/png') return dataURL }, /** * 获取后台广告方法 * @param {Array|String} active_codes_map 广告id标识符--数组集合["jy-wx-course-pay-success"] * @param {String} active_tip_group 展示广告的容器demo节点 * @param {String} isAppsion 请求环境、app、weixin、pc * @returns {Object|Array} */ getActiveInfo: function (active_codes_map,isAppsion) { // 如果执行环境是app var isAppsionApp = isAppsion === 'App' $.ajax({ url: '/publicapply/free/getJyAdList', type: 'POST', dataType: "json", traditional: true, //强制请求头数据格式 'application/json' headers: {'Content-Type': 'application/json'}, data:active_codes_map, // JSON.stringify({codes:["jy-wx-course-pay-success","jy-pc-dataPackage-pay-success"] }) // JSON.stringify() }).done(function (res) { // res.error_code =1 // Object.value 兼容处理 Object.values = function (obj) { return Object.keys(obj).map(function(e) { return obj[e] }) } if (res.error_code === 0 && res.data && Object.values(res.data)[0] && Object.values(res.data)[0] !=null && Object.values(res.data)[0][0]) { // weixin、pc环境 var img = new Image() var imgsrcArr = Object.values(res.data)[0][0] img.src = imgsrcArr.s_pic img.onload= function() { $(".active-tip-group").show() } $(".active-tip-group img").attr('src', imgsrcArr.s_pic + '?v=' + Math.random()) // 如果是app环境 ,调用原生方法、执行保存 // var isAppsionType = isAppsionApp || utils.isIos || utils.isAndroid var that = this var isAppsionType = isAppsionApp if (isAppsionType) { // APP 保存图片 $('.active-tip-group').off('click').on('click', function () { if(!window.picImgUrl) { html2canvas(document.querySelector('.active-tip-group'), { // allowTaint: true, useCORS: true, backgroundColor: null, scale: 3, imageTimeout: 30000, allowTaint: true, // 允许跨域图片 }).then(function(canvas) { var imgUrl = imgsrcArr.base64 || canvas.toDataURL('image/png') console.log(imgUrl) // $(".active-tip-group img").attr('src', imgUrl) imgUrl = imgUrl.replace('data:image/png;base64,', '') // console.log(imgUrl) window.picImgUrl = imgUrl try { window.JyObj.savePic(imgUrl) setTimeout(function() { weui.toast('图片已保存,快去扫码识别吧', { duration: 800, className: 'text-overflow100' }) }, 2300) } catch (e) { weui.toast('保存失败', { duration: 800, className: 'j-toast' }) console.log(e) // location.href=imgsrcArr.s_link } }) }else { window.JyObj.savePic(window.picImgUrl) setTimeout(function() { weui.toast('图片已保存,快去扫码识别吧', { duration: 800, className: 'text-overflow100' }) }, 2300) } }) } // App打开新窗口等 用 @param {String} isAppsion === 'Applink' else if ((isAppsion === 'Applink') && imgsrcArr.o_extend && imgsrcArr.o_extend.linktype === 'abroad') { $(".active-tip-group").on('click', function () { try { JyObj.openExternalLink(imgsrcArr.s_link, imgsrcArr.o_extend.title || '剑鱼标讯'); } catch (e) { console.log(e); } }) if (isIOS()) { $('.rules').css('margin-top', '0.28rem') } } else { // weixin、pc环境 直接跳转 if (imgsrcArr.s_link) { $(".active-tip-group").on('click', function () { try { location.href=imgsrcArr.s_link } catch (e) { console.log(e); } }) } } } else { $('.rules').css('margin-top', '0.8rem') $('.ad_space').hide() $('.login-dig-box').css('left', 'calc(50vw - 181px)') } }) } }