版权声明:本文为博主原创文章,转载注明来源。 https://blog.csdn.net/u013654125/article/details/84235278
在小游戏开发中,会有这样的需求:
当你分享了小游戏后,点击分享入口的小伙伴能获取到一些信息,来展示自己分享的独特的信息。
这种功能在微信的接口中已经有集成,实现该功能的接口主要有两个:
一:shareAppMessage
二:getLaunchOptionsSync
在讲这两个接口前,我们看下图:
现在微信官网上的wx.getLaunchInfoSync,这个接口我没有用,现在项目用的是getLaunchOptionsSync来代替getLaunchInfoSync。
接着说这两个接口:
扫描二维码关注公众号,回复:
5435610 查看本文章
shareAppMessage
该接口有三个参数:
tittle:你分享的那个朋友或群的分享消息的标题;
imageUrl:你分享的那个朋友或群的图片;
query:自定义的信息,分享出去有人点击了分享消息进入游戏后,能获取到的信息。
现在重点说一下query:query可以在有人点击了分享消息进入游戏后,通过wx.getLaunchOptionsSync().query来获取得到,获取到之后用字符串接口解析key1=val1&key2=val2格式的数据就可以了。
最后,来一个shareAppMessage的实例:
// 分享功能, 在游戏中点击按钮打开通讯录分享出去
// query在外部被初始化为'uipath=BattleResultShare&shareType=1';
function shareAppMessage(title, imagePath, shareInfo, shareAppMsgCallback) {
if (CC_WECHATGAME) {
wx.shareAppMessage({
getGroupMsgTicket: true,
title: title === '' ? SHARE_TITLE_STRING : title,
imageUrl: imagePath,
query: shareInfo,
success: data => {
// shareAppMsgCallback为点击分享成功后的回调,在这里
// 如果没有需求可以不用调用回调
shareAppMsgCallback(data, shareInfo, '转发成功');
},
fail: data => {
shareAppMsgCallback(data, shareInfo, '转发失败');
}
});
} else {
}
}
再来一个getLaunchOptionsSync的实例:
//该方法在游戏开始的时候调用
function checkOnLoad() {
if (CC_WECHATGAME) {
let lanuchInfo = wx.getLaunchOptionsSync().query;
if (typeof (lanuchInfo) !== 'undefined' && Object.keys(lanuchInfo).length > 0) {
let uipath = lanuchInfo.uipath;
let shareType = lanuchInfo.shareType;
let obj = {
uipath: uipath,
shareType: shareType,
};
if (!isSlef) {
// showToPanel为通过获取query自定义的数据后,展示的自定义的界面
showToPanel(obj);
}
}
} else {
}
}