詳解單頁(yè)面路由工程使用微信分享及二次分享解決方案
wxShare 說(shuō)明文檔
單頁(yè)面路由工程使用微信分享及二次分享解決方案
很多人在單頁(yè)面工程中使用weixin jsSDK時(shí) ,第一次調(diào)用正常, 路由切換時(shí)發(fā)現(xiàn)調(diào)用分享配置報(bào)錯(cuò), 此時(shí)忽略了一點(diǎn) ,在單頁(yè)面路由的 url 發(fā)生變化時(shí), 需要重現(xiàn)調(diào)用微信jsSDK分享配置;
wxShare除適用于 Vue 單頁(yè)工程外, 也可以使用與其他單頁(yè)工程例如 React,本示例主要展示如何在 Vue中使用;
微信 jssdk調(diào)用基本原理
1. (初始化頁(yè)面,劃重點(diǎn))掉用 api 獲取當(dāng)前頁(yè)面 url 授權(quán)的簽名
2. 配置微信分享 jssdk
3. 路由切換時(shí), 重新執(zhí)行步驟2
1. 快速使用, 只需三步
示例參見(jiàn) demo下 src/main.js
在工程入口文件引入 wxShare 文件
/*************** 步驟一 引入 微信 jssdk ************/ let appInit=0; import wx from 'weixin-js-sdk'; //配置授權(quán)api wxShare.config.jsSDKAuth='/api/mobile/WeiXin/ecstoreSendJsSdk';
/*************** 第二步 初始化微信分享 ************/ if (location.host != "localhost:8080") { let sign_url = location.href.split("#")[0]; appInit++; if (wx) { wxShare.initWxShare(sign_url); } }
/*************** 第三步 監(jiān)聽(tīng)路由重置微信分享為默認(rèn) ************/ router.afterEach(route => { let url=location.href.split("#")[0]; if (!store) return; if(appInit>1){ wxShare.resetWxShareConfig(); } appInit++; }) /*************** end 分割線 ************/
2. wxShare提供的方法
2.1 initWxShare()
初始化微信分享, 此時(shí)會(huì)調(diào)用內(nèi)部方法 wxShareAuth, 請(qǐng)求 api 授權(quán)當(dāng)前頁(yè)面 url;
2.2 updateWxShareConfig()
更新微信分享配置內(nèi)容, 例如, 在某個(gè)事件上主動(dòng)調(diào)用此方法, 來(lái)更改微信分享配置的標(biāo)題, 簡(jiǎn)述,鏈接或者封面圖
2.3 resetWxShareConfig()
通常情況下, 在路由發(fā)生變化時(shí), 希望已被更改過(guò)的分享配置, 重新重置為默認(rèn)分享配置
2.4 configWXJSSDK();
調(diào)用微信jsSDK 完成分享配置
3. wxShare.config屬性配置
配置名稱 | 屬性值 | 默認(rèn)值 |
---|---|---|
jsSDKAuth | String | '' |
shareSign | Object | 下文shareSign |
defaultWxShareConfig | Object | 下文defaultWxShareConfig |
wxShareConfig | Object | 下文wxShareConfig |
3.1 shareSign提供的配置
{ appid:"", jsapi_ticket:"", nonceStr:"", signature:"", timestamp:'', url:"", }
3.2 defaultWxShareConfig
{ title: "默認(rèn)分享配置title", desc: "默認(rèn)分享配置desc", link: location.href.split("#")[0], imgUrl: 'https://res.wx.qq.com/a/wx_fed/weixin_portal/res/static/img/dNEBuK6.png', jsApiList:['onMenuShareTimeline', 'onMenuShareAppMessage', 'hideMenuItems', 'closeWindow'], hideMenuList:['menuItem:editTag', 'menuItem:delete', 'menuItem:originPage', 'menuItem:readMode', 'menuItem:openWithQQBrowser', 'menuItem:openWithSafari', 'menuItem:share:email', 'menuItem:share:brand'] }
3.3 wxShareConfig
wxShareConfig:{}
其他
/wxShare.js 為插件源碼文件, 可根據(jù)自己需求自行更改
demo 工程只需 clone 本工程,
npm install npm run serve
npm依賴插件
- weixin-js-sdk
- axios
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Taro UI框架開(kāi)發(fā)小程序?qū)崿F(xiàn)左滑喜歡右滑不喜歡效果的示例代碼
這篇文章主要介紹了Taro UI開(kāi)發(fā)小程序?qū)崿F(xiàn)左滑喜歡右滑不喜歡效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05JavaScript常見(jiàn)繼承模式實(shí)例小結(jié)
這篇文章主要介紹了JavaScript常見(jiàn)繼承模式,結(jié)合實(shí)例形式總結(jié)分析了javascript原型鏈繼承、構(gòu)造函數(shù)繼承、組合繼承、原型式繼承、寄生式繼承等相關(guān)實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2019-01-01js實(shí)現(xiàn)彩色條紋滾動(dòng)條效果
本文主要介紹了js實(shí)現(xiàn)彩色條紋滾動(dòng)條效果的實(shí)例。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-03-03javascript定時(shí)器的簡(jiǎn)單應(yīng)用示例【控制方塊移動(dòng)】
這篇文章主要介紹了javascript定時(shí)器的簡(jiǎn)單應(yīng)用,結(jié)合javascript事件觸發(fā)控制方塊移動(dòng)操作分析了javascript定時(shí)器使用相關(guān)操作技巧,需要的朋友可以參考下2019-06-06javaScript年份下拉列表框內(nèi)容為當(dāng)前年份及前后50年
本文介紹的這個(gè)javaScript年份下拉列表框內(nèi)容為當(dāng)前年份及前后50年,默認(rèn)顯示當(dāng)前年份,大家可以學(xué)習(xí)下2014-05-05c#程序員對(duì)TypeScript的認(rèn)識(shí)過(guò)程
本文向大家詳細(xì)展示了從C#程序員的視角學(xué)習(xí)TypeScript的過(guò)程,主要是針對(duì)這兩種語(yǔ)言的異同進(jìn)行了簡(jiǎn)單的對(duì)比學(xué)習(xí),希望對(duì)大家能夠有所幫助。2015-06-06