1. 程式人生 > >cocos-creator使用記錄9_微信小遊戲的分享

cocos-creator使用記錄9_微信小遊戲的分享

1.右上角的分享(被動分享)
onLoad: function(){
//開啟右上角的分享
    wx.showShareMenu();
//監聽右上角的分享呼叫 
cc.loader.loadRes("texture/share",function(err,data){
wx.onShareAppMessage(function(res){
return {
title: "不怕,就來PK!",
imageUrl: data.url,
success(res){
console.log("轉發成功!!!")
common.diamond += 20;
},
fail(res){
console.log("轉發失敗!!!")

}
})
});
},


由上,分享圖的路徑是專案下的resources/texture/share.png
share.png對應程式碼中的share,微信應該會直接到這個目錄找一個圖片名字為share
的圖片,其省略了字尾,所以jpg圖片也是可以的。
另外,分享圖的大小是500*400。


2.點選按鈕分享(主動分享)
onShareBtn: function(){ //分享按鈕
cc.log("點選分享按鈕");
this.playBtnSound();
//主動拉起分享介面
cc.loader.loadRes("texture/share",function(err,data){
wx.shareAppMessage({
title: "不怕,就來PK!",
imageUrl: data.url,
success(res){
console.log("轉發成功!!!")
common.diamond += 20;
},
fail(res){
console.log("轉發失敗!!!")

})
});
},


以上是我的開始介面指令碼中的一部分,基本邏輯是:
若點選“分享”按鈕,就會進入微信分享介面,若分享成功,則給玩家發20個鑽石。
注意:微信在不開啟群分享時預設是單人分享。


3.群分享
onLoad: function() {
//微信開啟群分享
wx.updateShareMenu({
withShareTicket: true
})
},
onSeekHelpBtnClicked: function(){ //加心介面求助好友群按鈕
var self = this;
cc.loader.loadRes("texture/share",function(err,data){
wx.shareAppMessage({
title: "經典小遊戲始終好玩如初,來吧!一起來回味吧!",
imageUrl: data.url,
success(res){
console.log("轉發成功!!!");
if(res.shareTickets == null || res.shareTickets == undefined || res.shareTickets == ""){ //沒有群資訊,說明分享的是個人
console.log("res.shareTickets is null");
self.showTipsUI("請分享到群獲得生命值");
}else{ //有群資訊
console.log("res.shareTickets is not null");
if(res.shareTickets.length > 0){ 
common.heart = common.maxHeart; //恢復生命
self.showTipsUI("已回滿生命值");
}
}
},
fail(res){
console.log("轉發失敗!!!");

})
});
},


4.用微信開發者工具測試群分享
構建你的專案為微信小遊戲,執行,在開啟的微信開發者工具介面的模擬器中,點選右上角的
除錯設定按鈕,選擇“群聊會話中的小程式訊息卡片”,然後點選模擬器中你的遊戲介面中的
分享按鈕,在彈出列表中選一個測試模擬群,一個群分享就完成了。接下來就檢視右下角的
控制檯日誌是否如你所想的輸出了。
注意:有時候構建出的專案會出現明明開啟群分享,但在微信開發者工具的模擬器中點選右上
   角3個點的圖示卻顯示"此頁面沒有群分享"的提示。解決方法就是再次構建一次。


5.微信分享相關政策的變換
微信在2018年5月份發了一條政策,大概的意思,言明在開始收緊分享功能的濫用,在7月份全面封禁分享功能。
以後點選分享,開發者將不能獲得分享是否成功的資訊,一律返回成功,群分享,也不能獲得群的shareTickets了。
因此,開發者要適時變換呼叫微信分享的邏輯。