微信公眾號,H5自定義分享

胸毛仙人發表於2021-07-23

uni_app端程式碼 vue

import jweixin from '../../jweixin'
//在根目錄下建立jweixin資料夾,內放index.js,下載微信jsdk,連結http://res.wx.qq.com/open/js/jweixin-1.4.0.js,最新版本為1.6.0,但是不能使用會報錯
shareWechat(){
                let that = this;
                uni.request({
                    url: app.appUrl +'index/getWechatSignature?token='+this.token,//獲取服務端簽名介面
                    method: 'POST',
                    data: {
                        url: encodeURIComponent(location.href.split('#')[0])//js動態獲取當前域名,此域名需要在公眾號端配置
                    },
                    success(res) {
                        let s = res.data.data
                        console.log(s)
                        jweixin.config({
                            debug: false, // 開啟除錯模式,呼叫的所有api的返回值會在客戶端alert出來,若要檢視傳入的引數,可以在pc端開啟,引數資訊會通過log打出,僅在pc端時才會列印。
                            appId: 'appid', // 必填,公眾號的唯一標識
                            timestamp: s.timestamp, // 必填,生成簽名的時間戳
                            nonceStr: s.noncestr, // 必填,生成簽名的隨機串
                            signature: s.signature,// 必填,簽名
                            jsApiList: ["onMenuShareTimeline", "onMenuShareAppMessage"] // 必填,需要使用的JS介面列表
                        });
                        jweixin.ready(function () {
                            //獲取“分享給朋友”按鈕點選狀態及自定義分享內容介面(即將廢棄)
                            jweixin.onMenuShareAppMessage({
                                title: that.info.title, // 分享標題
                                desc: that.info.intro, // 分享描述
                                link: location.href, // 分享連結
                                imgUrl: that.author.headimgurl, // 分享圖示
                                type: '', // 分享型別,music、video或link,不填預設為link
                                dataUrl: '', // 如果type是music或video,則要提供資料連結,預設為空
                                success: function (e) {
                                    console.log(e)
                                }
                            })
                        })
                    }
                })
            }

服務端獲取access_token,JsapiTicket,sha1簽名等方法,官方給出的有例子
demo.open.weixin.qq.com/jssdk/sampl...

注意,注意,注意:
js傳url需要encodeURIComponent(),後端需要urldecode(),url也是需要動態獲取的,固定寫死簽名是不會成功的

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章