• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    怎樣實現(xiàn)Vue項目全局配置微信分享

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 19:42:51
    文檔

    怎樣實現(xiàn)Vue項目全局配置微信分享

    怎樣實現(xiàn)Vue項目全局配置微信分享:這次給大家?guī)碓鯓訉崿F(xiàn)Vue項目全局配置微信分享,實現(xiàn)Vue項目全局配置微信分享的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。這個項目為移動端項目,主要用于接入公眾號服務(wù)。項目采用兩種登錄方式,微信授權(quán)登錄以及賬號密碼登錄。對于移動端項目而言
    推薦度:
    導(dǎo)讀怎樣實現(xiàn)Vue項目全局配置微信分享:這次給大家?guī)碓鯓訉崿F(xiàn)Vue項目全局配置微信分享,實現(xiàn)Vue項目全局配置微信分享的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。這個項目為移動端項目,主要用于接入公眾號服務(wù)。項目采用兩種登錄方式,微信授權(quán)登錄以及賬號密碼登錄。對于移動端項目而言

    這次給大家?guī)碓鯓訉崿F(xiàn)Vue項目全局配置微信分享,實現(xiàn)Vue項目全局配置微信分享的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。

    這個項目為移動端項目,主要用于接入公眾號服務(wù)。項目采用兩種登錄方式,微信授權(quán)登錄以及賬號密碼登錄。對于移動端項目而言,為了便于項目擴(kuò)展以及提供開發(fā)熱更新速度,項目分為不同的模塊,每個模塊是一個單頁面應(yīng)用。頁面分為兩種,一種是需要用戶登錄之后才能瀏覽,另一種是用戶無需登錄即可瀏覽。無論哪一種,均配置微信分享。

    使用的技術(shù)

    1.使用vue作為框架
    2.使用vux作為UI組件庫

    全局配置微信分享思路

    1.區(qū)分一般和特殊,一般情況,全局配置默認(rèn)分享文案;特殊情況分兩種,一種是分享內(nèi)容不需要異步獲取,則在路由跳轉(zhuǎn)時配置,另一種是分享內(nèi)容需要異步獲取,則需要待異步內(nèi)容獲取后更新分享內(nèi)容。

    2.不需要異步獲取的內(nèi)容我們采用定義在路由元信息的方式,直接在每次路由跳轉(zhuǎn)之后調(diào)用公共函數(shù)更新分享內(nèi)容。

    具體可以查看微信JSSDK的使用說明

    // wxShare.js
    import Vue from 'vue'
    // 在組件外使用vux集成的微信jssdk
    import { WechatPlugin, AjaxPlugin } from 'vux'
    Vue.use(WechatPlugin)
    Vue.use(AjaxPlugin)
    export default function wxShare ({title, desc, timelineTitle, link, imgUrl} = {}) {
     Vue.wechat.config({
     debug: false,
     appId: appId,
     timestamp: timestamp,
     nonceStr: nonceStr,
     signature: signature,
     jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline']
     })
     Vue.wechat.ready(() => {
     Vue.wechat.onMenuShareAppMessage({
     title: title, // 分享標(biāo)題
     desc: desc || '默認(rèn)分享文案', // 分享描述
     link: link || window.location.href, // 分享鏈接
     imgUrl: imgUrl || '圖標(biāo)地址(必須是有效的Link)' // 分享圖標(biāo)
     })
     Vue.wechat.onMenuShareTimeline({
     title: timelineTitle || desc || '默認(rèn)分享文案', // 分享標(biāo)題,由于分享到朋友圈沒有desc,所以這里采用的策略是,指定的朋友圈分享標(biāo)題優(yōu)先,其次采用發(fā)送給朋友的描述,最后采用默認(rèn)文案。
     link: link || window.location.href, // 分享鏈接
     imgUrl: imgUrl || '圖標(biāo)地址(必須是有效的Link)' // 分享圖標(biāo)
     })
     })
     Vue.wechat.error((res) => {
     })
    }
    // 為Vue的原型對象添加該方法,則所有vue實例都能繼承該方法
    Vue.prototype.$wxShare = wxShare
    // router/index.js 每個模塊都有自己內(nèi)部的路由配置
    // codes...
    const routes = [
     {
     path: '/index',
     name: 'index',
     redirect: '/index/homepage',
     children: [
     {
     path: '/index/homepage',
     name: 'homepage',
     component: homepage
     meta: { 
     title: '這是主頁', 
     shareDesc: '這是本站的主頁', 
     desc: 'homepage, click and see!',
     timelineTitle: '這是首頁,歡迎點擊關(guān)注,blablablablabla~~~',
     imgUrl: 'http://frankzhang.me/wp-content/uploads/2017/08/cropped-favicon-01.png'
     }
     },
     ]
     }
    ]
    // routerRule,公共路由配置,所有模塊共用一個路由控制策略
    import wxShare from '@/utils/wxShare'
    export default function routerRule (router) {
     // other codes...
     router.afterEach(( to, from ) => {
     wxShare({ title: to.meta.title, desc: to.meta.shareDesc, link: to.meta.shareLink, logo: to.meta.shareLogo})
     })
    }
    // main.js
    import routerRule from ...
    routerRule(router)

    經(jīng)過上面的配置,router.afterEach都會調(diào)用一次wxShare,重新讀取router中的meta的信息重新定義微信分享內(nèi)容,達(dá)到全局配置和特殊配置結(jié)合的目的。

    需要異步獲取的分享內(nèi)容

    這種情況,我們采取在vue實例的created鉤子中,在獲取數(shù)據(jù)的成功回調(diào)中調(diào)用一次wxShare即可

    // homepage.vue
    <script>
    export default {
     data() {
     return {
     }
     },
     created() {
     getHomepageInfo()
     .then( res => {
     this.$wxShare({
     title: res.title,
     desc: res.desc,
     imgUrl: res.logo
     })
     } )
     }
    }
    </script>

    需要注意的坑點

    1.如果項目采用非history模式,則需要去掉url上#后的部分傳給后端換取微信簽名。

    2.根據(jù)微信官方說明:

    所有需要使用JS-SDK的頁面必須先注入配置信息,否則將無法調(diào)用(同一個url僅需調(diào)用一次,對于變化url的SPA的web app可在每次url變化時進(jìn)行調(diào)用...

    由于SPA應(yīng)用,url變化之后,需要重新config一次,重新注入當(dāng)前頁面的配置信息,因此這個步驟必須在router.afterEach中調(diào)用!因為根據(jù)vue-router的說明,在導(dǎo)航被確認(rèn)之后,再調(diào)用全局的afterEach鉤子,這個時候?qū)Ш揭呀?jīng)確認(rèn)了,url已經(jīng)改變,可以針對更新后的url重新獲取微信簽名了。

    相信看了本文案例你已經(jīng)掌握了方法,更多精彩請關(guān)注Gxl網(wǎng)其它相關(guān)文章!

    推薦閱讀:

    優(yōu)化vue項目步驟詳解

    怎樣使用Node.js內(nèi)Koa實現(xiàn)JWT用戶認(rèn)證

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    怎樣實現(xiàn)Vue項目全局配置微信分享

    怎樣實現(xiàn)Vue項目全局配置微信分享:這次給大家?guī)碓鯓訉崿F(xiàn)Vue項目全局配置微信分享,實現(xiàn)Vue項目全局配置微信分享的注意事項有哪些,下面就是實戰(zhàn)案例,一起來看一下。這個項目為移動端項目,主要用于接入公眾號服務(wù)。項目采用兩種登錄方式,微信授權(quán)登錄以及賬號密碼登錄。對于移動端項目而言
    推薦度:
    標(biāo)簽: 安裝 VUE 安裝微信
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲精品免费在线观看| 久久精品国产亚洲5555| 国产日韩久久久精品影院首页| 欧美成人精品高清在线观看| 国产精品人成在线观看| 2021久久国自产拍精品| 亚洲欧美日韩精品专区| 国产精品一区二区三区免费 | 亚洲午夜精品久久久久久人妖 | 国产精品免费大片一区二区| 高清免费久久午夜精品| 精品无码国产污污污免费网站| 亚洲精品国产精品国自产观看 | 色婷婷在线精品国自产拍| 日本精品夜色视频一区二区| 国产精品JIZZ在线观看老狼| 热久久这里只有精品| 国产成人精品综合网站| 精品国产午夜理论片不卡| 日韩精品无码免费一区二区三区| 亚洲国产精品无码久久青草 | 国产精品久久久久久久久鸭| 成人区人妻精品一区二区不卡视频 | 国产vA免费精品高清在线观看| 精品国产品香蕉在线观看75| 99精品人妻无码专区在线视频区| 人妻精品久久无码专区精东影业| 亚洲精品色婷婷在线影院| 免费看污污的网站欧美国产精品不卡在线观看 | 大桥未久在线精品视频在线| 国产精品久久久久…| 好吊妞视频精品| 久久96国产精品久久久| 精品国产第1页| 欧洲精品视频在线观看| 影视网欧洲精品| 国产精品V亚洲精品V日韩精品| 国产精品视频全国免费观看| 国产精品午夜免费观看网站| 精品人体无码一区二区三区| 久久久久久噜噜精品免费直播|