/* ================================================================================ * dever.js v1.0 * http://git.shemic.com/dever/script * ================================================================================ * Copyright 2017-2018 Dever(dever.cc) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ================================================================================ */ // //分享 暂时只支持手机版微信分享 请同时安装wechat组件 var Dever_Share = { wechat : false, url : '', project : '', uid : '-1', param : { title : '', img : '', desc : '', url : '', timelineCallback: function() {}, sendMessageCallback: function() {}, shareQQCallback: function() {} }, Init : function(uid, project, url, param, button) { var self = this; self.wechat = self.CheckWechat(); self.project = project; self.url = url; self.uid = uid; //self.param = param; $.extend(true, self.param, param) if (button) { $(button).on('click', function() { if (self.wechat == 1) { self.WechatGuide(); } else { self.WeiboShare($(this)); } }) } if (self.wechat == 1) { self.WechatInit(); } self.Reflux(); } ,CheckWechat : function() { var state = navigator.userAgent.toLowerCase().indexOf("micromessenger") > -1; if (state) { return 1; } else { return 2; } } ,WechatGuide : function() { var param = this.param; var tpl = '
'; $('#weixin_guide').remove(); $(tpl).attr('id', 'weixin_guide').appendTo($('body')); $('#weixin_guide img').css(weixinCfg.style || {}) setTimeout(function() { $('#weixin_guide').click(function() { $(this).remove(); }) }, 300) } ,WechatInit: function() { var self = this; var url = this.url + 'init?callback=?'; var param = this.param; var project = this.project; $.ajax({ type:'post', dataType:'jsonp', jsonp: 'jsonp_cb', url: url, data: { 'project' : project, 'url' : location.href.split('#')[0] }, success:function(result) { var data = result.data; wx.config({ //debug:true, appId: data.appId, timestamp: data.timestamp, nonceStr: data.nonceStr, signature: data.signature, jsApiList: [ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ' ] }); wx.ready(function() { wx.onMenuShareAppMessage({ title: param.title, desc: param.desc, link: param.url, imgUrl: param.img, success: function(res) { param.sendMessageCallback('success', res) self.ShareLog(1, 1); }, cancel: function(res) { param.sendMessageCallback('cancel', res) self.ShareLog(1, 2); }, fail: function(res) { param.sendMessageCallback('fail', res) self.ShareLog(1, 3); } }); wx.onMenuShareTimeline({ title: param.title, link: param.url, imgUrl: param.img, success: function(res) { param.timelineCallback('success', res) self.ShareLog(2, 1); }, cancel: function(res) { param.timelineCallback('cancel', res) self.ShareLog(2, 2); }, fail: function(res) { param.timelineCallback('fail', res) self.ShareLog(2, 3); } }); wx.onMenuShareQQ({ title: param.title, link: param.url, imgUrl: param.img, success: function(res) { param.shareQQCallback('success', res) self.ShareLog(3, 1); }, cancel: function(res) { param.shareQQCallback('cancel', res) self.ShareLog(3, 2); }, fail: function(res) { param.shareQQCallback('fail', res) self.ShareLog(3, 3); } }); }); }, async:'true', timeout: 3000 }); } ,Reflux: function() { var refer = document.referrer, url = encodeURIComponent(document.location.href), param = location.search.substr(1), ua = encodeURIComponent(navigator.userAgent), project = this.project, uid = this.uid, wechat = this.wechat; if (param.indexOf("tsina-") > -1 || param.indexOf("timeline") > -1 || param.indexOf("singlemessage") > -1 || param.indexOf("groupmessage") > -1) { $.getJSON(this.url + 'reflux?callback=?' + '&project='+project+'&url=' + url + '&ua=' + ua + '¶m=' + encodeURIComponent(param) + '&uid=' + uid + '&type=' + wechat); } } ,ShareLog: function(actType, actResult) { var project = this.project; var uid = this.uid; var wechat = this.wechat; var ua = encodeURIComponent(navigator.userAgent); var url = encodeURIComponent(document.location.href); $.getJSON(this.url + 'collect?callback=?' + '&project='+project+'&url=' + url + '&actType=' + actType + '&actResult=' + actResult + '&ua=' + ua + '&uid=' + uid + '&type=' + wechat); } } module.exports = { Dever_Share: Dever_Share, }