最近使用uni-app開發了一個在APP端和微信端同時使用的項目。
其中要實現分享到微信好友和朋友圈的功能,剩余的分享到QQ、釘釘等其他分享功能要隱藏。
開始直接引入了jweixin-1.6.0.js頁面直接白屏報錯,導致原有的數據都沒有展示出來;
接着找到了找到了第三方組件庫
下載
npm install jweixin-module --save
安裝微信分享模塊
安裝完成后你會得到一個jweixin-module 的包,
然后
import wx from "@/jweixin-module/jweixin-module/lib/index.js"
在頁面中引入模塊
這部分在上篇文章里講過,這里就不重復了
接着,
處理分享功能
又發現一個問題在微信分享在安卓中是合適的,但是在iOS中需要刷新一次執行能調起微信分享,
打開config里的debug模式,報錯invalid signature,就是簽名不可用。
並且需要隱藏的分享功能也沒有隱藏掉。
查了好多資料,很多大神已經找到問題,是因為
IOS:每次切換路由,SPA的url是不會變的,發起簽名請求的url參數必須是當前頁面的url(就是最初進入頁面時的url)
Android:每次切換路由,SPA的url是會變的,發起簽名請求的url參數必須是當前頁面的url(不是最初進入頁面時的)
大神給出的答案是在接口請求時穿參傳window.location.href.split('#')[0],而不是window.location.href
我試了試發現還是不行
接着想應該是iOS路由的問題,所以就用原生的頁面跳轉
在進入這個頁面的時候把uni.navigateTo換成window.location.href
打包,測試,合適了
至此一個困擾好久的問題就解決了
這里需要注意的是,window.location.href里的路徑需要用全路徑,包含域名的路徑,