• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    VUE解決微信簽名及SPA微信invalid signature問題(完美處理)

    來源:懂視網 責編:小采 時間:2020-11-27 21:59:27
    文檔

    VUE解決微信簽名及SPA微信invalid signature問題(完美處理)

    VUE解決微信簽名及SPA微信invalid signature問題(完美處理):前端小菜鳥,因為項目要對接微信的jssdk,對接就需要簽名認證,但是無奈安卓和IOS各有各的坑,本篇文章只討論簽名,和一個分享的坑,希望大家有所收獲,能夠解決問題,如果解決不到,請麻煩在評論區留言,本文綜合了所有的回答,才調試出來坑 需求: 使用微
    推薦度:
    導讀VUE解決微信簽名及SPA微信invalid signature問題(完美處理):前端小菜鳥,因為項目要對接微信的jssdk,對接就需要簽名認證,但是無奈安卓和IOS各有各的坑,本篇文章只討論簽名,和一個分享的坑,希望大家有所收獲,能夠解決問題,如果解決不到,請麻煩在評論區留言,本文綜合了所有的回答,才調試出來坑 需求: 使用微

    需求: 使用微信的功能

    原因:

    1. 項目基于vue,在微信上的web應用

    2. 要使用上傳功能(不同系統的兼容真的很多BUG,最后只能使用微信方案),支付功能,定位....

    3. 簽名一直存在bug和問題,那么后面的功能都會喚不起(偶爾也可以)

    簽名

    1. 流程詳細請看文檔,反正能力有限,沒看出什么名堂,總結一句話,要使用先簽名

    2. 開啟填坑之路,由于微信使用會區分IOS和安卓系列,不同系列產生不一樣的問題

    (公司項目第一版的時候就給微信大坑過,所以本次重構的時候,就格外注意這一點)

    安利一個在微信下能檢測內核的判斷:window.__wxjs_is_wkwebview(是否為webview內核),如果是的情況下就變成true

    因為SPA應用下,會有一定的問題,路由采用的是history模式(不帶#號)。因為在頁面每次進入到路由之后才去獲取簽名授權,所以將方法公用寫在路由的模塊下

    router.afterEach((to, from) => { // 伸手黨福利
     // window.__wxjs_is_wkwebview
     // true 時 為 IOS 設備
     // false時 為 安卓 設備
     if (window.__wxjs_is_wkwebview) { // IOS
     if (window.entryUrl == '' || window.entryUrl == undefined) {
     var url = `${FRONT_BASE}${to.fullPath}`
     window.entryUrl = url // 將后面的參數去除
     }
     getWxAuth(to.fullPath,"ios")
     }else { // 安卓
     setTimeout(function () {
     getWxAuth(to.fullPath,"android")
     }, 500);
     }
    })
  • window.entryUrl這個是什么鬼?這個是自己定義的全局屬性,就是為了獲取IOS第一次進入頁面的時候存儲起來的,如果IOS的簽名的路徑不是第一次進入的頁面,那么就一定會失敗,所以這個路由第一次進入就要儲存起來
  • 為什么要寫在router.afterEach,因為頁面進入了再去做申請和簽名,如果在beforeEach,會導致頁面申請簽名的時候還是上一個頁面,但是到了新頁面卻沒有注冊簽名,或者因為簽名的路徑不同,導致invalid signature
  • 為什么安卓的時候要增加一個延時器,因為安卓會存在一些情況,就是即便簽名成功,但是還是會喚不起功能,這個貌似是一個比較穩妥的解決辦法,
  • 看完路由模式了,就來進入邏輯部門,來看看如何處理

    有同學疑惑這個encodeURIComponent是干嘛用的,其實具體很簡單,就是因為我們在微信分享的時候,會自動給我們帶上參數(記得告訴后端的伙伴要decodeURIComponent),切記只要帶參數就一定要轉碼!

    對于IOS系統會自動增加如下參數:

  • 朋友圈 from=timeline&isappinstalled=0
  • 微信群 from=groupmessage&isappinstalled=0
  • 好友分享 from=singlemessage&isappinstalled=0
  • 對于安卓系統會自動添加如下參數:

  • 朋友圈 from=timeline
  • 微信群 from=groupmessage
  • 好友分享 from=singlemessage
  • 然后就直接去請求簽名,寫法就不深究,getWeChat是封裝的axios,只是為了統一管理才這么寫,大家可以寫成正常的請求axios('xxxx.com/get-wx',obj).then()這樣的寫法,一樣的效果

    到了這一步就基本上是請求簽名成功,但是有同學疑惑,那么IOS每次分享的時候會不會是進去的第一個路由,我的回答是會的(需要稍加處理)

    重點關注再與這個link,需要在每次分享的時候記錄當前的路由,如果直接讀location.href在IOS端的時候會是第一次進入的頁面。安卓則沒有問題,所以我統一采用我記錄的這個參數,這個參數可以直接在方法傳遞過來,路由afterEach的to.fullpage,然后再加上自己的域名就OK了最后寫幾句話,希望大家都能順便解決一下BUG,也希望能對大家有所幫助,如果遇到一些其他的問題,歡迎評論區留言,只要有時間就會及時跟大家交流探討!也希望大家多多支持腳本之家。

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

    文檔

    VUE解決微信簽名及SPA微信invalid signature問題(完美處理)

    VUE解決微信簽名及SPA微信invalid signature問題(完美處理):前端小菜鳥,因為項目要對接微信的jssdk,對接就需要簽名認證,但是無奈安卓和IOS各有各的坑,本篇文章只討論簽名,和一個分享的坑,希望大家有所收獲,能夠解決問題,如果解決不到,請麻煩在評論區留言,本文綜合了所有的回答,才調試出來坑 需求: 使用微
    推薦度:
    標簽: 微信 簽名 VUE
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 日韩精品国产自在欧美| 无码AV动漫精品一区二区免费 | 国产精品福利电影一区二区三区四区欧美白嫩精品 | 四虎精品影院永久在线播放| 最新国产乱人伦偷精品免费网站| 四虎精品免费永久在线| 国产麻豆精品一区二区三区v视界| 麻豆国产精品VA在线观看不卡| 国产亚洲婷婷香蕉久久精品| 亚洲av永久无码精品网站| 久久久久久青草大香综合精品| 一区二区三区精品国产欧美| 国产在线精品一区二区中文| 一夲道无码人妻精品一区二区| 精品精品国产欧美在线小说区| 欧美韩国精品另类综合| 99麻豆久久久国产精品免费| 精品无码无人网站免费视频| 无码人妻丰满熟妇精品区| 亚洲国产av无码精品| 久久se精品一区二区影院| 隔壁老王国产在线精品| 久久精品一区二区| 国产国产成人精品久久| 精品免费久久久久久久| 少妇人妻偷人精品无码视频| 最新国产乱人伦偷精品免费网站| 中文字幕精品无码一区二区 | 午夜精品一区二区三区在线视 | 亚洲精品无码久久久久久| 亚洲爆乳精品无码一区二区| 日本精品夜色视频一区二区| 久久er国产精品免费观看8| 精品久久人人做人人爽综合| 国产精品亚洲综合一区| 国产精品内射久久久久欢欢 | 欧美日韩精品一区二区在线播放| 国产精品分类视频分类一区| 国产精品久久亚洲不卡动漫| 精品国产福利久久久| 精品免费视在线观看|