tsp-component
Version:
提供多端和react版本的UI组件
152 lines (151 loc) • 5.72 kB
JavaScript
import Exception from '../exception';
import Framework from './index';
import Toast from '../toast';
import { hex_sha1 } from '../util/tools/sha1';
var WeiXin = (function () {
function WeiXin(params) {
this.shareCurrentUrl = params.shareCurrentUrl;
this.ready = params.ready;
}
WeiXin.prototype.chooseImage = function (savephotos) {
var _this = this;
wx.chooseImage({
count: 1,
sizeType: ['original'],
sourceType: ['album', 'camera'],
success: function (res) {
var localIds = res.localIds;
_this.uploadImage(localIds[0], savephotos);
}
});
};
WeiXin.prototype.getLocalImgData = function (localId, showphotos) {
wx.getLocalImgData({
localId: localId,
success: function (res) {
showphotos(res.localData);
}
});
};
WeiXin.prototype.getNetworkType = function () {
wx.getNetworkType({
success: function (res) {
Framework.global.network = res.networkType;
Exception.network = res.networkType;
}
});
};
WeiXin.prototype.hideMenuItems = function () {
if (process.env.NODE_ENV === 'production') {
wx.hideMenuItems({
menuList: [
'menuItem:share:appMessage',
'menuItem:share:timeline',
'menuItem:share:qq',
'menuItem:share:weiboApp',
'menuItem:favorite',
'menuItem:share:facebook',
'menuItem:share:QZone',
'menuItem:editTag',
'menuItem:delete',
'menuItem:copyUrl',
'menuItem:originPage',
'menuItem:readMode',
'menuItem:share:email',
'menuItem:share:brand'
]
});
}
};
WeiXin.prototype.onWxShare = function (params) {
var _this = this;
if (!Framework.wx.shareCurrentUrl) {
console.error('wx.shareCurrentUrl不能为空');
return;
}
if (process.env.NODE_ENV === 'production') {
wx.ready(function () {
var url = encodeURIComponent(_this.shareCurrentUrl);
var appId = Framework.config.appId;
var link = "http://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri=" + url + "&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect";
var apiList = [
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
'onMenuShareQZone'
];
for (var i = 0; i < apiList.length; i++) {
_this.share(apiList[i], link, params);
}
});
}
};
WeiXin.prototype.share = function (api, link, params) {
var title = params.title, desc = params.desc, imgUrl = params.imgUrl;
wx[api]({
title: title || '悦家云',
desc: desc || '让房子的事更简单',
link: link,
imgUrl: imgUrl || 'https://wap.yj.cn.com/assert/img/logo.jpg',
success: function () {
if (params.success) {
params.success();
}
}
});
};
WeiXin.prototype.previewImage = function (srcArray, current) {
if (process.env.NODE_ENV === 'production') {
wx.ready(function () {
var urls = srcArray.map(function (value) {
if (value.indexOf('http') >= 0) {
return value.replace('s_', 'l_');
}
return Framework.config.imgHost + value.replace('s_', 'l_');
});
wx.previewImage({
current: urls[current],
urls: urls
});
});
}
};
WeiXin.prototype.uploadImage = function (localId, savephotos) {
var _this = this;
Toast.loading('上传中');
wx.uploadImage({
localId: localId,
isShowProgressTips: 0,
success: function (res) {
Toast.hide();
if (window['__wxjs_is_wkwebview']) {
_this.getLocalImgData(localId, function (localData) { return savephotos(res.serverId, localData); });
}
else {
savephotos(res.serverId, localId);
}
},
error: function (e) {
Toast.hide();
}
});
};
WeiXin.prototype.wxConfig = function () {
var timestamp = new Date().getTime();
var nonceStr = 'ak0os7h1dojn51ojvs5r8lfwsq3debsu';
var url = window.location.href.split('#')[0];
var data = "jsapi_ticket=" + Framework.config.ticket + "&noncestr=" + nonceStr + "×tamp=" + timestamp + "&url=" + url;
var signature = hex_sha1(data);
wx.config({
debug: Framework.config.wxDebug,
appId: Framework.config.appId,
timestamp: timestamp,
nonceStr: nonceStr,
signature: signature,
jsApiList: window['wxJsApiList']
});
};
return WeiXin;
}());
export default WeiXin;