微信jssdk自定義分享問題總結

參考文章:火辣辣前端博客前端

1 分享功能前提條件必須保證經過config接口注入權限驗證配置成功

須要將必備的數據配置成功,而且須要將你用到的簽名注入在jsApiList數據裏ios

參考文章web

wx.config({
    debug: true, // 開啓調試模式,調用的全部api的返回值會在客戶端alert出來,若要查看傳入的參數,能夠在pc端打開,參數信息會經過log打出,僅在pc端時纔會打印。
    appId: '', // 必填,公衆號的惟一標識
    timestamp: , // 必填,生成簽名的時間戳
    nonceStr: '', // 必填,生成簽名的隨機串
    signature: '',// 必填,簽名
    jsApiList: [
                "onMenuShareTimeline",
                "onMenuShareAppMessage",
                "onMenuShareQQ",
                "onMenuShareWeibo",
                "onMenuShareQZone"
    ] // 必填,須要使用的JS接口列表
});複製代碼

2 調試模式報錯:invalid signature 很明顯簽名錯誤

當wx.config的debug設爲true的話打開頁面會顯示簽名是否成功,若顯示 invalid signature,則是簽名報錯,這時候你就須要去檢查你的簽名配置算法

解決辦法
一、確認簽名算法是否正確,可用 mp.weixin.qq.com/debug/cgi-b… 頁面工具進行校驗。
二、確認config中noncestr, timestamp與用以簽名中的對應noncestr, timestamp一致。
三、確認 config 中的 appid 與用來獲取 jsapi_ticket 的 appid 一致。
四、確認url是頁面完整的url,包括GET參數部分。

參考文章segmentfault

3 微信分享非安全域名連接致使分享失敗

微信後面作了調整,參考文章,連接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致,不然將調用失敗api

獲取「分享到朋友圈」按鈕點擊狀態及自定義分享內容接口
wx.onMenuShareTimeline({
    title: '', // 分享標題
    link: '', // 分享連接,該連接域名或路徑必須與當前頁面對應的公衆號JS安全域名一致
    imgUrl: '', // 分享圖標
    success: function () { 
        // 用戶確認分享後執行的回調函數
    }
});複製代碼

也就是說,你的link必須是和你的公衆號js安全域名一致。例如,當前頁面是 http://www.abc.com/123,其公衆號對應的JS安全域名爲 www.abc.com 以及 www.xyz.com,則分享自定義連接 http://www.abc.com/456 能夠成功,分享 http://www.xyz.com/123 或 http://www.def.com/123 均將失敗。安全

若是說你分享跳轉頁面必須是非安全域名下的連接,那你能夠單獨作一個轉發頁面,經過轉發連接進入這個轉發頁面後,再直接跳轉到拼接好的受權頁面。bash

參考代碼:非安全連接分享解決辦法微信

4 須要對公衆號進行認證

公衆號平臺是有權限的,你要確保你的公衆號已經得到了分享權限功能。由於微信暫不支持我的類型的公衆賬號申請微信認證。因此此類公衆號無需進行認證就有分享權限,企業號什麼的就自行去認證吧。app

參考文章

5分享link連接裏面不要是拼接的地址,直接寫成固定連接

好比 link對應參數好比:‘http://baidu/a/b/c/x/xx/x ’不要寫成‘http://baidu/‘+ url+'/a/b/c/x/xx/x'

參考文章

6 link參數帶中文或者特殊字符

帶中文的url在安卓中應該也是會出問題的,可是安卓會自動encodeURIComponent(),而ios不會。因此會出現安卓自定義能夠正常分享,可是ios就不行。

7 微信官方取消了cancel回調

還有一點須要注意,就是微信爲了杜絕一些商家的強制分享,取消了cancel回調函數,也就是說,只要用戶點擊了分享按鈕,就會出發success回調

參考文章

歡迎轉載,轉載需帶着文章出處連接~~

遇到問題在更新~~~~

相關文章
相關標籤/搜索