UNPKG

tsp-component

Version:

提供多端和react版本的UI组件

152 lines (151 loc) 5.72 kB
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 + "&timestamp=" + 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;