/** * */ define( 'mk7/controller', [ 'mk7/view', 'mk7/utils', 'mk7/jweixin' ], function(view, utils, jweixin) { var $$ = Dom7; var controller = function(){ this.app = {}, this.view = '', this.params = '', this.renderResult = '', this.init = function (app) { this.app = app; }, this.render = function(datas){ try { this.beforeRender(); var v = new view(); var r = v.render(this.view, datas); $$('.view-main').html(r); this.bindEvents(); this.afterRender(); } catch (e) { console.log(e); } }, this.beforeRender = function(){},//抽象方法,子类实现 this.afterRender = function(){},//抽象方法,子类实现 this.bindEvents = function(){},//抽象方法,子类实现 this.beforeRun = function(){},//抽象方法,子类实现 this.afterRun = function(){},//抽象方法,子类实现 this.run = function(){},//抽象方法,子类实现 this.showIndicator = function(){ var e = $$('#ui-loading'); if(0 == e.length){ if(this.app){ this.app.showIndicator(); } } }, this.setPageTitle = function(title){ var pageTitle = $$('title'); if (pageTitle <1) { var t = $$(''+ title +''); $$('head').append(t) } else { pageTitle.html(title) } }, this.hideIndicator = function(){ var e = $$('#ui-loading'); if(0 == e.length){ if(this.app){ this.app.hideIndicator(); } } }, this.csrf = function(data){ return utils.csrf(data); }, this.initJweixinMenuShare = function(params){ jweixin.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: params.appid, // 必填,公众号的唯一标识 timestamp: params.timestamp, // 必填,生成签名的时间戳 nonceStr: params.noncestr, // 必填,生成签名的随机串 signature: params.signature,// 必填,签名,见附录1 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage','hideAllNonBaseMenuItem','updateAppMessageShareData', 'updateAppMessageShareData','chooseImage','previewImage','uploadImage', 'getLocalImgData','openLocation','getLocation','scanQRCode'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); jweixin.ready(function () { // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后, // config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。 // 对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 //分享到朋友圈 jweixin.onMenuShareTimeline({ title: params.title, // 分享标题 desc: params.desc, // 分享标题//params.DESC link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); //分享给朋友 jweixin.onMenuShareAppMessage({ title: params.title, // 分享标题 desc: params.desc, // 分享标题//params.DESC link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 type: 'link', // 分享类型,music、video或link,不填默认为link success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); jweixin.onMenuShareQQ({ title: params.title, // 分享标题 desc: params.desc, // 分享描述 link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); jweixin.updateAppMessageShareData({ title: params.title, // 分享标题 desc: params.desc, // 分享描述 link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 设置成功 } }) jweixin.updateTimelineShareData({ title: params.title, // 分享标题 link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 设置成功 } }) }); }, this.hideAllNonBaseMenuItem = function(params){ jweixin.config({ debug: false, appId: params.appid, // 必填,公众号的唯一标识 timestamp: params.timestamp, // 必填,生成签名的时间戳 nonceStr: params.noncestr, // 必填,生成签名的随机串 signature: params.signature,// 必填,签名,见附录1 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage','updateAppMessageShareData', 'updateAppMessageShareData','hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem','chooseImage','previewImage','uploadImage', 'getLocalImgData','openLocation','getLocation','scanQRCode'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); jweixin.ready(function () { jweixin.hideAllNonBaseMenuItem(); }); }, this.weixinAllShare = function(params) { jweixin.ready(function () { // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后, // config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。 // 对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。 //分享到朋友圈 jweixin.onMenuShareTimeline({ title: params.title, // 分享标题 desc: params.desc, // 分享标题//params.DESC link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); //分享给朋友 jweixin.onMenuShareAppMessage({ title: params.title, // 分享标题 desc: params.desc, // 分享标题//params.DESC link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 type: 'link', // 分享类型,music、video或link,不填默认为link success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); jweixin.onMenuShareQQ({ title: params.title, // 分享标题 desc: params.desc, // 分享描述 link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 用户确认分享后执行的回调函数 }, cancel: function () { // 用户取消分享后执行的回调函数 } }); jweixin.updateAppMessageShareData({ title: params.title, // 分享标题 desc: params.desc, // 分享描述 link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 设置成功 } }) jweixin.updateTimelineShareData({ title: params.title, // 分享标题 link: params.user_bridge_url, // 分享链接 imgUrl: params.icon, // 分享图标 success: function () { // 设置成功 } }) }); }, this.showAllNonBaseMenuItem = function(params){ jweixin.config({ debug: false, appId: params.appid, // 必填,公众号的唯一标识 timestamp: params.timestamp, // 必填,生成签名的时间戳 nonceStr: params.noncestr, // 必填,生成签名的随机串 signature: params.signature,// 必填,签名,见附录1 jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage','updateAppMessageShareData', 'updateAppMessageShareData','hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem','chooseImage','previewImage','uploadImage', 'getLocalImgData','openLocation','getLocation','scanQRCode'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); jweixin.ready(function () { jweixin.showAllNonBaseMenuItem(); }); } }; return controller; } );