亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

記錄一次開發微信網頁分享的步驟

2024-05-06 16:50:35
字體:
來源:轉載
供稿:網友

需求

最近在做一個項目需求,分享領好書活動,獲取用戶的個人信息以及unionID,并誘導用戶分享給好友或朋友圈,達到裂變拉新的目的。在做的過程中遇到了一些坑的地方,所以回過來總結一下

技術方案

使用微信JS-SDK自定義分享到好友和分享到朋友圈

實現步驟

1、要實現微信H5網頁自定義分享功能,必須先熟悉下微信公眾平臺開發文檔,具體文檔里面說的很詳細,這里說下需要注意的點,別忘了綁定開發者權限,還有綁定js安全域名,要不然有可能會報redirect_uri參數錯誤。

2、首先一般在做微信H5網頁活動,都需要獲取用戶的個人信息,這就需要用戶授權,一般授權有兩種方式,一種是靜默授權,一種是網頁授權,這個在微信開發文檔說的很詳細。

對于已關注公眾號的用戶,如果用戶從公眾號的會話或者自定義菜單進入本公眾號的網頁授權頁,即使是scope為snsapi_userinfo,也是靜默授權,用戶無感知
一般網頁授權流程分為四步:

①引導用戶進入授權頁面同意授權,獲取code

②通過code換取網頁授權access_token(與基礎支持中的access_token不同)

③如果需要,開發者可以刷新網頁授權access_token,避免過期

④通過網頁授權獲取用戶基本信息(openid 、UnionID、個人頭像、性別、省市、微信昵稱等)

3、下面是具體實現代碼,說下大概思路,通過判斷參數是否在微信瀏覽器中打開,是否讓用戶授權,并重定向到微信的接口拿到code后通過接口傳給后端返回用戶的基本信息。

// 用戶授權 if (this.$route.query.from) {   // 跳轉微信頁面    let _nowUrl = window.location.href.split("?")[0] +`?pictureId=${this.$route.query.pictureId}`; // 參數拼接    let _shareUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=微信公眾號APPID&redirect_uri=${encodeURIComponent(_nowUrl)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`;    window.location.href = _shareUrl; // 重定向到這個定義的URL  }  // 通過code獲取用戶信息  if (this.$route.query.code) {   let _code = this.$route.query.code;   this.handleWechatMsg(_code);  }

4、接下來就是如何自定義分享給好友或者朋友圈,同樣也是按照調用微信開發文檔上說的進行配置和調用。在調用分享接口成功之后開始調用分享api,并在調用成功之后的回調函數執行跳頁,這里微信那邊做了限制,如果用戶在點擊分享的時候取消了,默認還是走success成功回調函數,是拿不到最終分享成功的狀態。下面是實現分享的具體代碼

// 分享給朋友或朋友圈  wxChatShare(param) {   var that = this;   let _url = encodeURIComponent(param.url);   apiUrl.wechatConfig(_url).then(res => {     if (res.data.code == 200) {       wx.config({        debug: false,        appId: res.data.content.appid,        timestamp: res.data.content.timestamp, // 必填,生成簽名的時間戳        nonceStr: res.data.content.nonceStr, // 必填,生成簽名的隨機串        signature: res.data.content.signature, // 必填,簽名        jsApiList: [         "onMenuShareTimeline",         "onMenuShareAppMessage"         // "updateAppMessageShareData",         // "updateTimelineShareData"        ]       });       // wx.ready(function() {       //分享到朋友圈       wx.onMenuShareTimeline({        title: param.title, // 分享標題        link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致        imgUrl: param.imgUrl, // 分享圖標        success: function() {         // 用戶點擊了分享后執行的回調函數         that.$Message.message("分享成功!");         that.toRouter();        }       });       //分享到好友       wx.onMenuShareAppMessage({        title: param.title, // 分享標題        desc: param.desc, // 分享描述        link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致        imgUrl: param.imgUrl, // 分享圖標        type: param.type, // 分享類型,music、video或link,不填默認為link        dataUrl: param.dataUrl, // 如果type是music或video,則要提供數據鏈接,默認為空        success: function() {         // 用戶點擊了分享后執行的回調函數         that.$Message.message("分享成功!");         that.toRouter();        }       });       // wx.updateTimelineShareData({       //  title: param.title, // 分享標題       //  link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致       //  imgUrl: param.imgUrl, // 分享圖標       //  success: function(res) {       //   // 設置成功       //   that.$Message.message("設置成功!");       //   that.toRouter();       //  }       // });       // //分享給朋友       // wx.updateAppMessageShareData({       //  title: param.title, // 分享標題       //  desc: param.desc, // 分享描述       //  link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當前頁面對應的公眾號JS安全域名一致       //  imgUrl: param.imgUrl, // 分享圖標       //  success: function(res) {       //   // 設置成功       //   that.$Message.message("設置成功!");       //   that.toRouter();       //  }       // });       // });       wx.error(function(res) {        console.log("驗證失敗返回的信息:", res);       });     } else {      console.log(res.data.message);     }    })    .catch(err => {     this.$Message.message(error);    });  },

總結

這里遇到比較坑的就是,在調用分享事件的時候,不能同時寫四個分享按鈕事件,如果都寫上,會造成在安卓機上還沒有點擊分享按鈕的時候,就已經走分享成功success回調函數了,這里說下為啥寫四個分享按鈕事件,因為發現如果不寫上即將廢掉的兩個onMenuShareTimeline、onMenuShareAppMessage會在安卓機上遇到不能分享的問題,所以把新增的兩個分享按鈕事件updateAppMessageShareData、updateTimelineShareData注釋掉,就都可以分享了,iOS和安卓均沒問題。

我發現其實遇到這種原因有可能是新舊兩個分享事件的執行順序的問題,也就是在調用新增的分享按鈕的時候,得先在wx.ready執行,而即將廢棄的接口是不需要的。

微信網頁分享

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品人伦一区二区三区蜜桃网站| 国产精品久久久久久久久久小说| 福利一区视频在线观看| 日韩电影免费观看在线观看| 国产精品免费久久久久久| 国产精品xxxxx| 国产日韩在线亚洲字幕中文| 一本色道久久88综合日韩精品| 亚洲影院色在线观看免费| 国产日韩欧美影视| 欧美老妇交乱视频| 国内精品在线一区| 中文字幕久久久av一区| 欧美日韩国产黄| 久久久女女女女999久久| 国产精品999| 欧美在线免费看| 亚洲欧美另类自拍| 日韩综合视频在线观看| 欧美性videos高清精品| 亚洲free性xxxx护士hd| 日韩欧美在线免费观看| 欧美最顶级的aⅴ艳星| 一本色道久久综合狠狠躁篇怎么玩| 538国产精品一区二区在线| 日韩精品中文字幕在线播放| 国产激情久久久久| 精品无人区太爽高潮在线播放| 成人国产精品一区| 国产在线高清精品| 日韩在线观看免费av| 亚洲第一区在线观看| 97精品国产97久久久久久| 国产精品男女猛烈高潮激情| www.欧美精品一二三区| 97久久超碰福利国产精品…| 中文字幕综合一区| 亚洲欧美国产精品专区久久| 国产日产亚洲精品| 国产成人免费av电影| 国产精品第二页| 久久夜精品va视频免费观看| 色爱精品视频一区| 欧美精品一本久久男人的天堂| 日韩电影网在线| 日本19禁啪啪免费观看www| 亚洲自拍偷拍一区| 伊人激情综合网| 91欧美日韩一区| 久久久国产精品免费| 欧美日韩国产一区二区| 亚洲系列中文字幕| 九九精品视频在线| 欧美高清视频一区二区| 日韩精品亚洲视频| 欧美亚洲视频在线观看| 欧美高跟鞋交xxxxhd| 久久免费在线观看| 黑人巨大精品欧美一区二区一视频| 97在线看免费观看视频在线观看| 欧美亚洲视频在线看网址| 日本午夜在线亚洲.国产| 精品免费在线视频| 亚洲热线99精品视频| 日韩美女在线播放| 国产精品99久久99久久久二8| 精品亚洲夜色av98在线观看| 色偷偷噜噜噜亚洲男人| 久久久伊人日本| 欧美专区在线视频| 国产精品久久久久久婷婷天堂| 国产欧美在线看| 国产成人一区三区| 亚洲欧美日韩另类| 久久久999精品免费| 日韩一级裸体免费视频| 亚洲精品视频在线播放| 欧美交受高潮1| 一本色道久久88综合亚洲精品ⅰ| 亚洲精品国产suv| 精品久久久久久久久久国产| 最近2019好看的中文字幕免费| 亚洲激情 国产| 久久男人的天堂| 亚洲成人久久电影| 欧美日韩午夜视频在线观看| 日韩性生活视频| 欧美重口另类videos人妖| 91精品国产99| 国产精品久久久久久超碰| 日韩免费在线观看视频| 精品久久在线播放| 国产精品久久久久久久久借妻| 久久天天躁日日躁| 色婷婷综合成人| 成人免费自拍视频| 亚洲欧洲自拍偷拍| 亚洲欧美国产va在线影院| 亚洲国语精品自产拍在线观看| 精品国产一区久久久| 欧美日韩国产丝袜另类| 一区二区三区回区在观看免费视频| 性欧美亚洲xxxx乳在线观看| 91九色单男在线观看| 久久国产精品偷| 精品国产区一区二区三区在线观看| 日韩美女福利视频| 欧美国产在线电影| 欧美高清自拍一区| 日韩国产中文字幕| 欧美日韩不卡合集视频| 欧美中文字幕视频| 国产精品一区二区三区久久久| 国产色婷婷国产综合在线理论片a| 精品亚洲国产视频| 亚洲无亚洲人成网站77777| 免费97视频在线精品国自产拍| 96sao精品视频在线观看| 日韩欧美精品网站| 国产999精品视频| 亚洲韩国青草视频| 中文字幕亚洲一区二区三区| 亚洲欧美激情另类校园| 色婷婷成人综合| 欧美电影免费观看高清| 日韩黄在线观看| 精品无人国产偷自产在线| 国产一区二区三区在线播放免费观看| 亚洲精品不卡在线| 国产精品久久久久久久app| 日韩电影免费在线观看| 亚洲一区二区久久久久久久| 国产91精品久| 亚洲精品欧美一区二区三区| 91免费视频国产| 国产一区二区三区免费视频| 亚洲精品黄网在线观看| 色噜噜亚洲精品中文字幕| 在线精品视频视频中文字幕| 国产偷亚洲偷欧美偷精品| 亚洲自拍偷拍在线| 亚洲精品suv精品一区二区| 成人高清视频观看www| 欧美激情精品久久久久久大尺度| 亚洲欧美制服丝袜| 国产一区二区三区中文| 欧美日韩午夜视频在线观看| 亚洲国产高清高潮精品美女| 亚洲成色777777在线观看影院| 91av网站在线播放| 热久久视久久精品18亚洲精品| 欧美日韩在线视频观看| 亚洲国产精品一区二区久| 91视频8mav| 丝袜情趣国产精品| 国产日韩精品综合网站| 国产亚洲精品久久久久久777| 成人免费淫片视频软件| 亚洲成人教育av| 8090理伦午夜在线电影| 亚洲女人天堂av| 日韩激情av在线播放| 色av中文字幕一区| 夜夜嗨av色综合久久久综合网|