最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue-router history模式下的微信分享小結

 更新時間:2018年07月05日 15:53:14   作者:曼城藍月亮  
本篇文章主要介紹了vue-router history模式下的微信分享小結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

背景

舊項目改造,進行前后端分離。做成了spa,為了保證后端路由時期鏈接可用性,使用了history模式。

因為不同的頁面有不同的分享內容,所以每次路由都要重新進行wx.config/wx.ready調用

微信分享遇到的坑

微信官方文檔上有下面一段話:

所有需要使用JS-SDK的頁面必須先注入配置信息,否則將無法調用(同一個url僅需調用一次,對于變化url的SPA的web app可在每次url變化時進行調用,目前Android微信客戶端不支持pushState的H5新特性,所以使用pushState來實現(xiàn)web app的頁面會導致簽名失敗,此問題會在Android6.2中修復)

在實際測試和大量真實數(shù)據(jù)收集后發(fā)現(xiàn),Android4.4+都是支持pushState的。也就是說,沒有遇到官方文檔所述的問題。(此番調研后才決定采用history模式進行實施的,導致IOS下踩了坑)

IOS下遇到了問題:

# 打開頁面時分享沒有問題,路由一次之后再分享簽名錯誤(invalid signature)

這個問題是由于IOS微信瀏覽器下,有著下面的“特性”:

把第一次打開的頁面叫做進入頁;把前端路由若干次跳轉(通過pushState/replaceState改變url)之后,當前打開的頁面叫做當前頁。

微信驗簽使用的url(當前網頁的URL,不包含#及其后面部分),在Android下取的是當前頁url,在IOS下取的是進入頁的url(支付目錄也是一樣)

知道了這個,可以采取下面的辦法來解決:

使用vuex保存進入頁的URL,每次wx.config需要的參數(shù),都使用進入頁的URL來進行簽名

至此,微信分享簽名錯誤的問題解決了,但分享還是不正常:# 自定義分享不生效

度娘谷歌了一番,大概有下面幾種辦法

  • 使用hash模式
  • 做成多頁應用,每個頁面都是進入頁
  • 所有需要自定義分享的頁面使用<a>替換<router-link>,跟2類似,使所有自定義分享頁面變成進入頁

對于我們的業(yè)務場景來說,hash模式不能保證歷史鏈接的可用性,多頁/<a>跳轉都是以犧牲一定體驗性為代價。

經過多番嘗試,最后發(fā)現(xiàn)用下面的方法勉強解決了問題:

// 進入頁面,控制自定義分享前,把當前頁URL替換成進入頁的URL(保證自定義分享正常)
this.setCurrentPage(location.href)
window.history.replaceState({}, document.title, this.landingPage)
wx.config()
wx.ready()

//...

// 離開當前頁時,還原當前頁的URL(保證返回正常)
beforeRouteLeave(to, from, next) {
  window.history.replaceState({}, '', this.currentPage)
  next()
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Vue echarts封裝組件需求分析與實現(xiàn)

    Vue echarts封裝組件需求分析與實現(xiàn)

    在平常的項目中,echarts圖表我們也是使用的非常多的,通常我們從后端拿到數(shù)據(jù),需要在圖表上動態(tài)的進行呈現(xiàn),接下來我們就模擬從后端獲取數(shù)據(jù)然后進行呈現(xiàn)的方法,這篇文章主要介紹了Vue echarts封裝組件需求分析與實現(xiàn)
    2022-10-10
  • Vue中自定義全局組件的實現(xiàn)方法

    Vue中自定義全局組件的實現(xiàn)方法

    這兩天學習了Vue.js 感覺組件這個地方知識點挺多的,而且很重要,所以這篇文章主要給大家介紹了關于Vue中自定義全局組件的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • 詳解用webpack2.0構建vue2.0超詳細精簡版

    詳解用webpack2.0構建vue2.0超詳細精簡版

    本篇文章主要介紹了詳解用webpack2.0構建vue2.0超詳細精簡版,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Vue-router的使用和出現(xiàn)空白頁,路由對象屬性詳解

    Vue-router的使用和出現(xiàn)空白頁,路由對象屬性詳解

    今天小編就為大家分享一篇Vue-router的使用和出現(xiàn)空白頁,路由對象屬性詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 在Vue中使用axios請求攔截的實現(xiàn)方法

    在Vue中使用axios請求攔截的實現(xiàn)方法

    這篇文章主要介紹了在Vue中使用axios請求攔截,需要的朋友可以參考下
    2018-10-10
  • Vue3實現(xiàn)動態(tài)面包屑的代碼示例

    Vue3實現(xiàn)動態(tài)面包屑的代碼示例

    這篇文章主要給大家介紹一下Vue3動態(tài)面包屑是如何實現(xiàn)的,實現(xiàn)思路又是什么,以及發(fā)給大家介紹一下面包屑的功能,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • vue實現(xiàn)全選組件封裝實例詳解

    vue實現(xiàn)全選組件封裝實例詳解

    這篇文章主要介紹了vue?全選組件封裝,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • vue3限制table表格選項個數(shù)的解決方法

    vue3限制table表格選項個數(shù)的解決方法

    這篇文章主要為大家詳細介紹了vue3限制table表格選項個數(shù)的解決方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 如何利用vue3實現(xiàn)一個俄羅斯方塊

    如何利用vue3實現(xiàn)一個俄羅斯方塊

    俄羅斯方塊這個游戲相信大家都玩過,下面這篇文章主要給大家介紹了關于如何利用vue3實現(xiàn)一個俄羅斯方塊的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-01-01
  • vue表格(table)計算總計方式

    vue表格(table)計算總計方式

    這篇文章主要介紹了vue表格(table)計算總計方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07

最新評論

莆田市| 孙吴县| 杨浦区| 义马市| 鄂尔多斯市| 遵义市| 福鼎市| 河北省| 尖扎县| 张掖市| 顺昌县| 贵阳市| 昌江| 启东市| 罗定市| 商都县| 溆浦县| 姚安县| 东至县| 芦溪县| 江口县| 丰宁| 如皋市| 西城区| 诸城市| 田阳县| 东至县| 沙湾县| 丰镇市| 增城市| 介休市| 凉城县| 新宁县| 阿图什市| 台南县| 巴青县| 浦江县| 岳池县| 漳浦县| 怀来县| 兴业县|