微信jssdk的接入(分享及掃碼功能)

vue中使用(vux版)

微信掃一掃功能

分享接口只有認(rèn)證公眾號(hào)才能使用螟够,域名必須備案且在微信后臺(tái)設(shè)置。

先確認(rèn)已經(jīng)滿足使用jssdk的要求再進(jìn)行開發(fā)漱贱。
1.引入vux類庫
2.在 main.js 中全局引入

import { WechatPlugin } from 'vux'
Vue.use(WechatPlugin)

console.log(Vue.wechat) // 可以直接訪問 wx 對(duì)象槐雾。

3.全局引入后就可以在任意組件內(nèi)調(diào)用了,如:

this.$wechat.scanQRCode({
        needResult: 0, // 默認(rèn)為0幅狮,掃描結(jié)果由微信處理募强,1則直接返回掃描結(jié)果,
        scanType: ["qrCode","barCode"], // 可以指定掃二維碼還是一維碼崇摄,默認(rèn)二者都有
        success: function (res) {
        var result = res.resultStr; // 當(dāng)needResult 為 1 時(shí)擎值,掃碼返回的結(jié)果
        }           
    });

準(zhǔn)備工作完成,下面開始正式的流程

步驟一逐抑、綁定域名
先登錄微信公眾平臺(tái)進(jìn)入“公眾號(hào)設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名” (這個(gè)一般是后臺(tái)去做的)

步驟二鸠儿、引入JS文件
jquery的項(xiàng)目在需要調(diào)用JS接口的頁面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js
vue的項(xiàng)目可以用vux的組件,就是我上面介紹的那一堆東西

步驟三进每、通過config接口注入權(quán)限驗(yàn)證配置
這個(gè)過程一般都是在App.vue中完成
思路:先向后臺(tái)請(qǐng)求配置所需要的數(shù)據(jù)汹粤,也就是下面的scan()函數(shù),得到數(shù)據(jù)后在通過config接口注入權(quán)限驗(yàn)證配置,也就是init()函數(shù)品追,最后在create生命周期中調(diào)用一下scan()函數(shù)玄括,這一步就算完成了

init:function(data){
          //通過config接口注入權(quán)限驗(yàn)證配置
          this.$wechat.config({
              debug: false, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù)肉瓦,可以在pc端打開遭京,參數(shù)信息會(huì)通過log打出,僅在pc端時(shí)才會(huì)打印泞莉。
              appId: data.app_id, // 必填哪雕,公眾號(hào)的唯一標(biāo)識(shí)
              timestamp: data.timestamp, // 必填,生成簽名的時(shí)間戳
              nonceStr: data.nonceStr, // 必填鲫趁,生成簽名的隨機(jī)串
              signature: data.signature,// 必填斯嚎,簽名,見附錄1
              jsApiList: ['scanQRCode'] // 必填挨厚,需要使用的JS接口列表
          });
          //通過ready接口處理成功驗(yàn)證

      },
scan:function(){
          this.$http({
              methods:'get',
              url:'/gongzhonghao/Jssdk',
              params:{
                  // 代碼需要上傳服務(wù)器堡僻,否則返回為0
                  url:location.href.split('#')[0],
              }
          }).then(res=>{
              this.init(res.data.data)
          })
      },

步驟四、在需要的組件內(nèi)調(diào)用功能接口疫剃,如下面調(diào)用的是掃一掃的接口

let self = this;
self.$wechat.scanQRCode({
        needResult: 1, // 默認(rèn)為0钉疫,掃描結(jié)果由微信處理,1則直接返回掃描結(jié)果巢价,
        scanType: ["qrCode"], // 可以指定掃二維碼還是一維碼牲阁,默認(rèn)二者都有
        success: function (res) {
            self.$vux.loading.hide();
            var result = res.resultStr; // 當(dāng)needResult 為 1 時(shí),掃碼返回的結(jié)果
            if (result){
                self.$store.commit('setPrizeQrCode',result);
                self.getPrizeQrcodeInfo(result)
            }else {
                self.$vux.alert.show({
                    content:'未識(shí)別的兌換碼'
                })
            }

        }
    });

注意:微信的sdk只能在微信中打開壤躲,如果不是城菊,則無法使用微信的功能,下面是判斷是否微信打開的函數(shù)

isWeixn:function(){
        var ua = navigator.userAgent.toLowerCase();
        if(ua.match(/MicroMessenger/i)=="micromessenger") {
            return true;
        } else {
            return false;
        }
    },
    //判斷是否微信的處理
    if(this.isWexin()){
        //是微信碉克,在里面寫相關(guān)的業(yè)務(wù)邏輯凌唬,如分享,掃碼等功能
    }else {
        //這個(gè)是硬性不支持漏麦,沒有辦法的
        alert('請(qǐng)?jiān)谖⑿胖写蜷_')
    }

附錄:微信js-sdk說明文檔

jquery中使用sdk

1.在需要調(diào)用JS接口的頁面引入如下JS文件客税,(支持https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js

2.jssdk的簽名權(quán)限,這個(gè)權(quán)限是由后臺(tái)提供的,前端只需要把簽名權(quán)限注入到wx.config中就可以了

//初始化jssdk
    var init = function(data){
        //通過config接口注入權(quán)限驗(yàn)證配置
        wx.config({
            debug: false, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù)唁奢,可以在pc端打開霎挟,參數(shù)信息會(huì)通過log打出,僅在pc端時(shí)才會(huì)打印麻掸。
            appId: data.app_id, // 必填酥夭,公眾號(hào)的唯一標(biāo)識(shí)
            timestamp: data.timestamp, // 必填,生成簽名的時(shí)間戳
            nonceStr: data.nonceStr, // 必填,生成簽名的隨機(jī)串
            signature: data.signature,// 必填熬北,簽名疙描,見附錄1
            jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表
        });
        //通過ready接口處理成功驗(yàn)證
        wx.ready(function(){
            //分享到朋友圈
            
//          var local_url = $.getStorge('auth_url');
//          if(!local_url){
//              local_url = window.location.href;
//          }
            var local_url = window.location.href;
           
            console.log(local_url);
            wx.onMenuShareTimeline({
                title: desc+'--'+title, // 分享標(biāo)題
                link: local_url, // 分享鏈接讶隐,該鏈接域名或路徑必須與當(dāng)前頁面對(duì)應(yīng)的公眾號(hào)JS安全域名一致
                imgUrl: 'http://jssdk.cloud-cy.com/wechatShopServer/'+logo, // 分享圖標(biāo)
                success: function () { 
                    // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù)
                },
                cancel: function () { 
                    // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)
                }
            });
            //分享給朋友
            wx.onMenuShareAppMessage({
                title: title, // 分享標(biāo)題
                desc: desc, // 分享描述
                link: local_url, // 分享鏈接起胰,該鏈接域名或路徑必須與當(dāng)前頁面對(duì)應(yīng)的公眾號(hào)JS安全域名一致
                imgUrl: 'http://jssdk.cloud-cy.com/wechatShopServer/'+logo, // 分享圖標(biāo)
                type: 'link', // 分享類型,music、video或link巫延,不填默認(rèn)為link
                dataUrl: '', // 如果type是music或video效五,則要提供數(shù)據(jù)鏈接,默認(rèn)為空
                success: function () { 
                    // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù)
                },
                cancel: function () { 
                    // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)
                }
            });
        });
    }
    //獲取jssdk配置
    $.ajax({
        type:"get",
        url:web+"/Jssdk",
        data:{
            url:window.location.href,
            url_code:account
        },
        dataType:"json",
        success:function(data,textStatus){console.log(data);
            if(data.code==200){
                init(data.data);
            }else{
//              alert("連接失敗炉峰,請(qǐng)稍后再試或聯(lián)系管理員");
            }

        }
    });
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畏妖,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子疼阔,更是在濱河造成了極大的恐慌戒劫,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婆廊,死亡現(xiàn)場(chǎng)離奇詭異迅细,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)淘邻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門茵典,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人列荔,你說我怎么就攤上這事敬尺∶赌幔” “怎么了贴浙?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)署恍。 經(jīng)常有香客問我崎溃,道長(zhǎng),這世上最難降的妖魔是什么盯质? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任袁串,我火速辦了婚禮,結(jié)果婚禮上呼巷,老公的妹妹穿的比我還像新娘囱修。我一直安慰自己,他們只是感情好王悍,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布破镰。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鲜漩。 梳的紋絲不亂的頭發(fā)上源譬,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音孕似,去河邊找鬼踩娘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛喉祭,可吹牛的內(nèi)容都是我干的养渴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼泛烙,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼厚脉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起胶惰,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤傻工,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后孵滞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體中捆,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年坊饶,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了泄伪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡匿级,死狀恐怖蟋滴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情痘绎,我是刑警寧澤津函,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站孤页,受9級(jí)特大地震影響尔苦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜行施,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一允坚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛾号,春花似錦稠项、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斩芭。三九已至,卻和暖如春乐疆,著一層夾襖步出監(jiān)牢的瞬間划乖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工挤土, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琴庵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓仰美,卻偏偏與公主長(zhǎng)得像迷殿,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子咖杂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容