背景:微信公眾號網頁,nuxt.js框架
問題:iphone手機第壹次進入頁面提示: config:invalid signature,也就是說簽名無效,刷新當前頁面後簽名就通過了(config: ok)。而Android手機卻壹直是正常的(config: ok)。
微信分享流程:
微信文檔
第壹步:設置公眾號的JS接口安全域名
第二步:引入js文件
第三步:獲取簽名:傳入當前頁面url(當前網頁的URL,不包含#及其後面部分) 作為參數,請求後端接口獲取簽名。
第四步:所有需要使用JS-SDK的頁面必須先註入配置信息,用第三步獲取的簽名信息(AppId、生成簽名的時間戳、生成簽名的隨機串、簽名)傳入wx.config,完成配置,並開啟調試模式:debug: true
這時用Android手機打開會提示:config: ok,壹切正常。
問題來了:
這時候用iphone手機打開卻提示: config:invalid signature。刷新頁面後就會提示:config: ok,又好了?什麽鬼?
在第三步把“當前頁面url” 打印出來的是: /share/
而進入這個頁面的地址是:
點擊後實際瀏覽器中是:
因為兩個地址不壹致,刷新頁面後瀏覽器的實際地址是: /share/ (刷新頁面後 url最後多了壹個“/”),這時候兩個地址完全壹致,所以刷新頁面後簽名config: ok。
解決辦法:
最簡單粗暴的解決辦法就是進入頁面的時候就給最後加上 “ / ”: