做過(guò)內(nèi)嵌釘釘?shù)腍5微應(yīng)用時(shí)所踊,發(fā)現(xiàn)釘釘?shù)膶?dǎo)航欄很霸道棺禾,當(dāng)你設(shè)置一個(gè)頁(yè)面的導(dǎo)航欄右側(cè)按鈕時(shí)蓬蝶,當(dāng)你切換別的頁(yè)面也會(huì)附帶上個(gè)頁(yè)面的設(shè)置按鈕
只設(shè)置一個(gè)頁(yè)面頭部右側(cè)導(dǎo)航欄導(dǎo)致的結(jié)果,如下圖:
剛進(jìn)入頁(yè)面
切換到日志頁(yè)面
再返回到首頁(yè)
這導(dǎo)致你需要每個(gè)頁(yè)面設(shè)置下右側(cè)導(dǎo)航欄的按鈕糊治,但有寫(xiě)頁(yè)面你需要它原本的更多分享按鈕和功能唱矛,翻釘釘文檔,沒(méi)有默認(rèn)設(shè)置井辜,只有一個(gè)設(shè)置的方法绎谦,查看釘釘開(kāi)發(fā)文檔
導(dǎo)航欄設(shè)置
錯(cuò)誤嘗試
一開(kāi)始我以為只要把按鈕顯示出來(lái)就可以了吧,但發(fā)現(xiàn)點(diǎn)了沒(méi)反應(yīng)粥脚,下面是錯(cuò)誤代碼:
// 設(shè)置釘釘導(dǎo)航欄右側(cè)單個(gè)按鈕默認(rèn)更多按鈕
window.dd.biz.navigation.setRight({
show: true, // 控制按鈕顯示窃肠, true 顯示, false 隱藏刷允, 默認(rèn)true
control: true, // 是否控制點(diǎn)擊事件冤留,true 控制碧囊,false 不控制, 默認(rèn)false
text: ``, // 控制顯示文本纤怒,空字符串表示顯示默認(rèn)文本
onSuccess: result => {
},
onFail: err => console.log(err)
})
解決方法
再細(xì)看一眼代碼糯而,點(diǎn)不動(dòng)是應(yīng)該的,沒(méi)有寫(xiě)點(diǎn)擊成功的調(diào)用事件泊窘,想了想應(yīng)該在點(diǎn)擊成功的調(diào)用分享熄驼,然后就去翻釘釘?shù)姆窒硎录阍囅录臃窒淼氖录刹豢梢院姹Y(jié)局很美好瓜贾,解決了這個(gè)坑,下面是正確代碼
// 設(shè)置釘釘導(dǎo)航欄右側(cè)單個(gè)按鈕 默認(rèn)更多按鈕
window.dd.biz.navigation.setRight({
show: true, // 控制按鈕顯示携悯, true 顯示祭芦, false 隱藏, 默認(rèn)true
control: true, // 是否控制點(diǎn)擊事件蚌卤,true 控制实束,false 不控制奥秆, 默認(rèn)false
text: ``, // 控制顯示文本逊彭,空字符串表示顯示默認(rèn)文本
onSuccess: result => {
// 釘釘分享事件
window.dd.biz.util.share({
type: 0, // 分享類(lèi)型,0:全部組件 默認(rèn)构订; 1:只能分享到釘釘侮叮;2:不能分享,只有刷新按鈕
url: window.location.href,
content: '積分', //分享描述
title: '積分',//分享標(biāo)題
image: '1.png',//分享縮略圖
onSuccess: function () {
// onSuccess將在分享完成之后回調(diào)
/**/
},
onFail: err => console.log(err)
})
// 如果control為true悼瘾,則onSuccess將在發(fā)生按鈕點(diǎn)擊事件被回調(diào)
},
onFail: err => console.log(err)
})
友情小提示
釘釘切換頁(yè)面時(shí)囊榜,如果你每個(gè)頁(yè)面的標(biāo)題不一樣,是需要使用釘釘?shù)姆椒ㄔO(shè)置下標(biāo)題亥宿,如下圖
// 守衛(wèi)路由 start
router.beforeEach(function (to, from, next) {
if (to.meta.title) { document.title = to.meta.title } // 在路由里面寫(xiě)入的meta里面的title字段
// 設(shè)置釘釘導(dǎo)航欄標(biāo)題 start
window.dd.biz.navigation.setTitle({
title: document.title, // 控制標(biāo)題文本卸勺,空字符串表示顯示默認(rèn)文本
onSuccess: result => {},
onFail: err => console.error('設(shè)置導(dǎo)航欄標(biāo)題錯(cuò)誤', err)
})
next()
})