1.了解分享,砍一刀結(jié)構(gòu)流程
(1).分享
創(chuàng)建點(diǎn)擊事件觸發(fā)分享事件》創(chuàng)建需要分享的頁面》使用官方的頁面生命周期函數(shù)onShareAppMessage》監(jiān)聽分享事件構(gòu)建后續(xù)業(yè)務(wù)邏輯
(2).砍一刀
接收分享的頁面》驗(yàn)證登錄情況》點(diǎn)擊砍價(jià)事件》判斷是否已經(jīng)砍過》砍價(jià)成功后與分享前頁面的交互
2.分享邏輯代碼
(1).創(chuàng)建分享事件 使用button標(biāo)簽類型為share
<button class="btn" open-type="share">
<text>邀請(qǐng)好友砍價(jià)</text>
</button>
(2).分享邏輯
// 頁面生命周期函數(shù),自定義此頁面的轉(zhuǎn)發(fā)給好友(已經(jīng)有全局的分享方法,此處會(huì)覆蓋全局)
onShareAppMessage(res) {
return {
//分享預(yù)覽頁的標(biāo)題
title: '朋友邀請(qǐng)您來砍價(jià)哦!',
//需要分享的頁面路徑和需要傳遞的參數(shù),例如:當(dāng)前需要分享的頁面路徑是/pagesA/share/share
path:
'/pagesA/share/share?orderId=' + orderId + '&userIds=' + userIds
//分享預(yù)覽頁的圖片
imageUrl: ' '
};
},
3.砍一刀邏輯代碼
(1).調(diào)用后端接口,判斷已砍和未砍
getmyFriendBargainInfo() {
//具體請(qǐng)求參數(shù)和后端協(xié)商 例如:bargainOrDoughId:傳過來的訂單id,friendUserId:幫助砍價(jià)人的賬號(hào)id,driverUserId:發(fā)起砍價(jià)人的賬號(hào)id
this.api.myFriendBargainInfo({ bargainOrDoughId: this.options.orderId, friendUserId: uni.getStorageSync('userId'), driverUserId: this.options.userIds }).then(res => {
console.log(res);
this.message = res.data.data;
});
},
(2).砍一刀邏輯
bargainHelp() {
//判斷是否已經(jīng)砍過了
if (this.message.myFriendBargainIdStatus == 0) {
this.api
.UserBargaining({ bargainId: this.options.id, driverUserId:uni.getStorageSync('userId') })
.then(red => {
console.log(red);
this.getmyFriendBargainInfo();
//砍價(jià)成功后向外發(fā)出一個(gè)事件,為了與分享前的頁面做交互,分享前的頁面接受參數(shù)后,會(huì)更新砍價(jià)進(jìn)度,重新刷新數(shù)據(jù)渲染頁面
uni.$emit('bargainOrderUpdate', { msg: '砍價(jià)頁面更新' });
uni.showToast({
title: '砍價(jià)成功',
duration: 2000
});
})
.catch(() => {
this.tui.toast('砍價(jià)失敗');
});
} else if (this.message.myFriendBargainIdStatus == 1) {
this.tui.toast('您已經(jīng)砍過了');
}
},
4.交互
//接受砍價(jià)頁發(fā)送出來的事件
uni.$on("bargainUpdate",data => {
//幫助砍價(jià)成功后執(zhí)行的后續(xù)邏輯,比如頁面砍價(jià)進(jìn)度的刷新...
})