@icanvas/apis
Version:
这是icanvas的Api功能包
53 lines (52 loc) • 1.68 kB
JavaScript
/**
* 构造分享结构
* @param {Object} Content 分享参数
* @param {Object} Replace 可用变量
*/
let GetMessage = function(Content, Replace) {
let Message = Object.assign({}, typeof Content == 'function' ? Content() : Content);
if (Replace) Message.title = Message.title.replace(/{.*?}/g, string => Replace[string] || string);
if (Share.Query) {
let Query = Object.keys(Share.Query)
.map(key => key + '=' + Share.Query[key])
.join('&');
Message.query = Message.query ? Message.query + '&' + Query : Query;
}
return Message;
};
/**
* 分享功能
* @param {Object} Content 分享参数
* @param {Object} Replace 可用变量
* 打包方式为web时,暂无分享功能
*/
let Share = function(Content, Replace) {
if (ENV.core == 'wxgame') {
let Message = GetMessage(Content, Replace);
console.log('内部分享', Message);
wx[Share.Key](Message);
} else if (ENV.core == 'web') {
let Message = GetMessage(Content, Replace);
console.log('检查分享', Message);
}
};
/**
* 打包方式为wxgame时,监听右上角胶囊分享
* @param {Function|Object} Callback 分享参数或者分享参数获取函数
* @param {Object} 可用变量
*/
Share.On = function(Content, Replace) {
if (ENV.core == 'wxgame') {
wx[Share.On.Key](function() {
let Message = GetMessage(Content, Replace);
console.log('默认分享', Message);
return Message;
});
wx.showShareMenu({ withShareTicket: true });
}
};
Share.GetMessage = GetMessage;
Share.Key = 'shareAppMessage'; //分享使用的微信接口
Share.Query = {}; //默认带参数
Share.On.Key = 'onShareAppMessage'; //胶囊分享使用的原生接口
export default Share;