各位大佬好,現(xiàn)在我遇到一個(gè)問(wèn)題,如題所示,就是react spa下的微信分享。
環(huán)境:react-router v4 history模式
業(yè)務(wù):微信菜單中,配置項(xiàng)目首頁(yè)面,是配置的后臺(tái)地址,后臺(tái)會(huì)去靜默授權(quán)等邏輯操作后,轉(zhuǎn)發(fā)到前端路由的頁(yè)面。
問(wèn)題:此時(shí),只要是后臺(tái)轉(zhuǎn)發(fā)過(guò)來(lái)的頁(yè)面,微信jssdk config可以成功,也能夠做一些隱藏不必要的右上角微信自帶菜單的功能,但是!微信分享配置失敗,如果用戶在后臺(tái)剛轉(zhuǎn)發(fā)進(jìn)來(lái)的頁(yè)面,進(jìn)行分享,會(huì)把原地址分享出去,而不是分享前端配置好的鏈接。
而如果,用戶在后臺(tái)轉(zhuǎn)發(fā)進(jìn)來(lái)的頁(yè)面,發(fā)生了url跳轉(zhuǎn),則此時(shí),微信分享就會(huì)生效。
請(qǐng)問(wèn)各位,有沒(méi)有遇到這樣的問(wèn)題,我快崩潰了,目前項(xiàng)目就差這一個(gè)bug。。。有經(jīng)驗(yàn)的大佬分享下解決方案。謝謝
放上我的代碼吧。我的環(huán)境還有模式跟你的類似。react-router v4 是hashrouter,也是用戶直接進(jìn)去后臺(tái)授權(quán)后跳轉(zhuǎn)到前端,但是不是靜默授權(quán)。不清楚你調(diào)用接口時(shí)候和后臺(tái)請(qǐng)求參數(shù)時(shí)候傳給后臺(tái)的路徑是不是帶#,因?yàn)?后邊的部分服務(wù)端不認(rèn)。所以會(huì)報(bào)錯(cuò)
componentDidMount() {
this.setState({
//openId(document.cookie)
thisGood: this.props.match.params.id,
}, () => {
//這個(gè)獲取商品詳細(xì)信息
get(`${API}/detail/${this.state.thisGood}?openId=${this.state.openId}`)
.then((res) => {
return res.json()
})
.then((data) => {
//console.log(data)
this.setState({
detailGoodData: data,
collectionData:data.collection,
hasBeenBottom: true
},()=>{
//這個(gè)是獲取微信的一些參數(shù)的接口,這一段:需要往后臺(tái)傳當(dāng)前需要調(diào)用分享接口頁(yè)面的URL,我使用的HashRouter,#后邊的傳到后臺(tái)會(huì)丟失。所以用的問(wèn)號(hào)代替。后臺(tái)解析到問(wèn)號(hào)的時(shí)候再還原成#。
get(`${API}/weixin/fetchconfig?openId=${this.state.openId}&url=http://m.baobaofarm.com/?/detail/${this.props.match.params.id}`).then(res=>{
return res.json()
}).then(data=>{
wx.config({
debug: false, // 開(kāi)啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來(lái),若要查看傳入的參數(shù),可以在pc端打開(kāi),參數(shù)信息會(huì)通過(guò)log打出,僅在pc端時(shí)才會(huì)打印。
appId: data.objData.appId, // 必填,公眾號(hào)的唯一標(biāo)識(shí)
timestamp:data.objData.config_timestamp , // 必填,生成簽名的時(shí)間戳
nonceStr: data.objData.config_nonceStr, // 必填,生成簽名的隨機(jī)串
signature: data.objData.config_signature,// 必填,簽名,見(jiàn)附錄1
jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表見(jiàn)附錄2
});
wx.onMenuShareTimeline({
title: this.state.detailGoodData.goodsName, // 分享標(biāo)題
link: data.objData.redirect_url, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁(yè)面對(duì)應(yīng)的公眾號(hào)JS安全域名一致
imgUrl: this.state.detailGoodData.listImage, // 分享圖標(biāo)
success: function () {
//alert('已分享')
//window.location.
},
cancel: function () {
//alert('已取消')
//window.location.
}
});
//分享給朋友
wx.onMenuShareAppMessage({
title: this.state.detailGoodData.goodsName, // 分享標(biāo)題
desc: '好東西分享給你', // 分享描述
link: data.objData.redirect_url, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁(yè)面對(duì)應(yīng)的公眾號(hào)JS安全域名一致
imgUrl: this.state.detailGoodData.listImage, // 分享圖標(biāo)
type: '', // 分享類型,music、video或link,不填默認(rèn)為link
dataUrl: '', // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空
success: function () {
// 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù)
//alert('已分享')
//window.location.
},
cancel: function () {
// 用戶取消分享后執(zhí)行的回調(diào)函數(shù)
//alert('已取消')
//window.location.
}
});
});
})
})
});
}北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。