angular中微信分享问题

qq_20889543 2017-10-25 03:05:23
// 微信 JS SDK 分享
angular.module("pharmacyApp").factory("ShareService", ["$http", "$window","$timeout","$cookies",
function ($http, $window,$timeout,$cookies) {
// 封装请求参数
var config = {
method: 'get', // 方法类型
url: '/h5/jsApiParams/get', // 地址
params: { // 参数
url: $window.location.href,
groupId : $cookies.get("branchGroupId") || '',
branchId: $cookies.get("branchId") || '',
platform : "N"
},
headers: {"Content-Type": "text/json; charset=UTF-8"}, // 头部
cache: false, // 是否使用缓存
timeout: 30000 // 响应时长
};

var jsApiParams = function(title,desc,link,imgUrl){
imgUrl = (imgUrl && imgUrl != '') ? imgUrl : $window.location.protocol+'//'+$window.location.host+'/QWWAP_NG/common/img/icon_300.png';
$http(config).success(function(data){
var res = data.body;
if(data.result != 'OK'){ return; }
if (res.apiStatus === 0) {
var config = data.body,
shareData = { title: title, desc: desc, link: link, imgUrl: imgUrl, type: 'link', dataUrl: '', success: function () {
alert('1');
}, cancel: function () { }},
shareData2 = { title: desc, desc: title, link: link, imgUrl: imgUrl, type: 'link', dataUrl: '', success: function () {
alert('2');
}, cancel: function () { }},
shareData3 = { title: desc, desc: title, link: $window.location.href, imgUrl: imgUrl, type: 'link', dataUrl: '', success: function () {
alert('3');
}, cancel: function () { }},
auth_list = ['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareQZone','onMenuShareWeibo','hideOptionMenu','showOptionMenu','hideMenuItems','showMenuItems','hideAllNonBaseMenuItem','showAllNonBaseMenuItem'];
wx.config({
debug: true,
appId: config.appId,
timestamp: config.timestamp,
nonceStr: config.nonceStr,
signature: config.signature,
jsApiList: auth_list
});
wx.ready(function() {
wx.checkJsApi({ jsApiList:auth_list, error:function(res){ alert("您的微信客户端太低,请升级后再试!"); } });
wx.onMenuShareTimeline(shareData2);
wx.onMenuShareAppMessage(shareData);
wx.onMenuShareQQ(shareData3);
wx.onMenuShareWeibo(shareData3);
});
}
});
};

//自定义分享
var wx_share = function (title,desc,link,imgUrl) {
jsApiParams(title,desc,link,imgUrl);
};

return {
wx_share: wx_share
};
}]);
红色标注:wx.config 设置后 wx.ready 方法有时候能正常执行,有时候不能执行,我通过用javascript正常写法, wx.ready每次都能执行,经过测试得出的结果,angular中调用 wx.config 后wx.ready不一定能执行,因为wx.config是异步方法,虽然angular对异步有相关处理方式,基于这种情况,不知道该怎么解决,跪谢!!!!!
...全文
227 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

39,083

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧