一.分享鏈接 link的域名必須與當(dāng)前頁(yè)面的域名相同
分享頁(yè)面的域名要與 分享出去地址(link)的域名相同渤滞,否則自定義的title飒焦、link因妇、imgUrl會(huì)設(shè)置失敗并且沒有任何錯(cuò)誤提示董朝。
二. iphone 第一次進(jìn)入invalid signatrue
背景:微信公眾號(hào)網(wǎng)頁(yè)灰瞻,nuxt.js框架
問題:iphone手機(jī)第一次進(jìn)入頁(yè)面提示: config:invalid signature腥例,也就是說簽名無效,刷新當(dāng)前頁(yè)面后簽名就通過了(config: ok)酝润。而Android手機(jī)卻一直是正常的(config: ok)燎竖。
微信分享流程:
第一步:設(shè)置公眾號(hào)的JS接口安全域名
第二步:引入js文件
第三步:獲取簽名:傳入當(dāng)前頁(yè)面url(當(dāng)前網(wǎng)頁(yè)的URL,不包含#及其后面部分) 作為參數(shù)要销,請(qǐng)求后端接口獲取簽名构回。
第四步:所有需要使用JS-SDK的頁(yè)面必須先注入配置信息,用第三步獲取的簽名信息(AppId疏咐、生成簽名的時(shí)間戳纤掸、生成簽名的隨機(jī)串、簽名)傳入wx.config浑塞,完成配置借跪,并開啟調(diào)試模式:debug: true
這時(shí)用Android手機(jī)打開會(huì)提示:config: ok,一切正常酌壕。
問題來了:
這時(shí)候用iphone手機(jī)打開卻提示: config:invalid signature掏愁。刷新頁(yè)面后就會(huì)提示:config: ok,又好了卵牍?什么鬼果港?
在第三步把“當(dāng)前頁(yè)面url” 打印出來的是:http://xxx.com/share/
而進(jìn)入這個(gè)頁(yè)面的地址是:
<nuxt-link to="share">分享</nuxt-link>
點(diǎn)擊后實(shí)際瀏覽器中是:
http://xxx.com/share 地址最后面最后少了個(gè) “/”
因?yàn)閮蓚€(gè)地址不一致,刷新頁(yè)面后瀏覽器的實(shí)際地址是:http://xxx.com/share/ (刷新頁(yè)面后 url最后多了一個(gè)“/”)糊昙,這時(shí)候兩個(gè)地址完全一致辛掠,所以刷新頁(yè)面后簽名config: ok。
解決辦法:
最簡(jiǎn)單粗暴的解決辦法就是進(jìn)入頁(yè)面的時(shí)候就給最后加上 “ / ”:
let pathName = nuxtConfig.router.base // base的值是相對(duì)目錄路徑
window.location.href= location.origin +pathName+ 'share/' // 注意:最后的“/”是重點(diǎn)