茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    微信jssdk用法匯總
    來源:易賢網(wǎng) 閱讀:1158 次 日期:2016-07-27 14:43:06
    溫馨提示:易賢網(wǎng)小編為您整理了“微信jssdk用法匯總”,方便廣大網(wǎng)友查閱!

    本文針對(duì)微信jssdk用法進(jìn)行了詳細(xì)匯總,分享給大家,供大家參考,具體內(nèi)容如下

    1.綁定域名

    2.引入js文件 

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

    請(qǐng)注意,如果你的頁面啟用了https,務(wù)必引入 https://res.wx.qq.com/open/js/jweixin-1.0.0.js ,否則將無法在iOS9.0以上系統(tǒng)中成功使用JSSDK

    3.通過config接口注入權(quán)限驗(yàn)證配置 

    這一步是通過用當(dāng)前的url向后臺(tái)發(fā)請(qǐng)求拿到一系列參數(shù)。即后臺(tái)會(huì)拿我的url去向微信進(jìn)行認(rèn)證。這里需要注意的事用于驗(yàn)證的當(dāng)前的url寫法, 

    let url = location.href.split(‘#')[0]; 

    務(wù)必寫成以上形勢(shì)。否則會(huì)在進(jìn)行config時(shí)報(bào)invalid signature,

    確認(rèn)url是頁面完整的url(請(qǐng)?jiān)诋?dāng)前頁面alert(location.href.split('#')[0])確認(rèn)),包括'http(s)://'部分,以及'?'后面的GET參數(shù)部分,但不包括'#'hash后面的部分。

    確保你獲取用來簽名的url是動(dòng)態(tài)獲取的,動(dòng)態(tài)頁面可參見實(shí)例代碼中php的實(shí)現(xiàn)方式。如果是html的靜態(tài)頁面在前端通過ajax將url傳到后臺(tái)簽名,前端需要用js獲取當(dāng)前頁面除去'#'hash部分的鏈接(可用location.href.split('#')[0]獲取,而且需要encodeURIComponent),因?yàn)轫撁嬉坏┓窒恚⑿趴蛻舳藭?huì)在你的鏈接末尾加入其它參數(shù),如果不是動(dòng)態(tài)獲取當(dāng)前鏈接,將導(dǎo)致分享后的頁面簽名失敗。

    注意這里的動(dòng)態(tài),不要隨便自己拼接,同時(shí)encodeURIComponent。

    $.ajax({

      type:'GET', 

      url: url,

      dataType: 'jsonp'

    })

    .then((data)=> {

     wx.config({

    debug: true, // 開啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來,若要查看傳入的參數(shù),可以在pc端打開,參數(shù)信息會(huì)通過log打出,僅在pc端時(shí)才會(huì)打印。

     appId: '', // 必填,公眾號(hào)的唯一標(biāo)識(shí)

     timestamp: , // 必填,生成簽名的時(shí)間戳

     nonceStr: '', // 必填,生成簽名的隨機(jī)串

     signature: '',// 必填,簽名,見附錄1

     jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2

    });

    })

    4.通過ready接口處理成功驗(yàn)證 

    config信息驗(yàn)證后會(huì)執(zhí)行ready方法,所有接口調(diào)用都必須在config接口獲得結(jié)果之后,config是一個(gè)客戶端的異步操作,所以如果需要在頁面加載時(shí)就調(diào)用相關(guān)接口,則須把相關(guān)接口放在ready函數(shù)中調(diào)用來確保正確執(zhí)行。對(duì)于用戶觸發(fā)時(shí)才調(diào)用的接口,則可以直接調(diào)用,不需要放在ready函數(shù)中。

    wx.ready (()=> {

       // alert('ready');

       //$('#onMenuShareAppMessage').on('click', ()=> {

        // 分享給朋友

        wx.onMenuShareAppMessage({

         title: '',

         desc: '',

         link: shareUrl,

         imgUrl: '',

         trigger: function (res) {

         // alert('用戶點(diǎn)擊發(fā)送給朋友');

         },

         success: function (res) {

         alert('已分享');

         },

         cancel: function (res) {

         alert('已取消');

         },

         fail: function (res) {

         alert(JSON.stringify(res));

         }

        });

       //});

       //分享到朋友圈

       wx.onMenuShareTimeline({

        title: '', // 分享標(biāo)題

        link: shareUrl, // 分享鏈接

        imgUrl: '', // 分享圖標(biāo)

        success: function () { 

         alert('已分享');

         // alert($('.no-num').html());

        },

        cancel: function () { 

         alert('已取消');

         // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)

         // alert('取消');

        }

       });

      });

    5.通過error接口處理失敗驗(yàn)證 

    config信息驗(yàn)證失敗會(huì)執(zhí)行error函數(shù),如簽名過期導(dǎo)致驗(yàn)證失敗,具體錯(cuò)誤信息可以打開config的debug模式查看,也可以在返回的res參數(shù)中查看

    wx.error((res)=> {

      alert(res.errMsg);

    })

    6.基礎(chǔ)接口

    •分享到朋友圈接口

    wx.onMenuShareTimeline({

     title: '', // 分享標(biāo)題

     link: '', // 分享鏈接

     imgUrl: '', // 分享圖標(biāo)

     success: function () { 

      // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù)

     },

     cancel: function () { 

      // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)

     }

    });

    •分享給好友的接口

    wx.onMenuShareAppMessage({

     title: '', // 分享標(biāo)題

     desc: '', // 分享描述

     link: '', // 分享鏈接

     imgUrl: '', // 分享圖標(biāo)

     type: '', // 分享類型,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ù)

     }

    });

    如果這里需要在分享的內(nèi)容中加入用ajax異步請(qǐng)求拿到的內(nèi)容,必須在ajax請(qǐng)求返回后的成功函數(shù)中再調(diào)用一次該分享接口,但是必須將分享接口放在wx.ready函數(shù)中,不能單獨(dú)調(diào)用。因?yàn)榭蛻舳朔窒聿僮魇且粋€(gè)同步操作,這時(shí)候使用 ajax的數(shù)據(jù)還沒有返回。 

    7. 這些步驟看起來似乎比較簡(jiǎn)單,但是調(diào)試的過程中難免會(huì)遇到很多問題,因?yàn)閖ssdk接口還是有很多的限制的。一不小心就踩到了坑。 

    8. 最后,我將這個(gè)接口進(jìn)行了一下封裝。

    'use strict';

    let wxDefaultOptions = {

     debug: true,

     appId: '',

     timestamp: 0,

     nonceStr: '',

     signature: '',

     jsApiList: [

     'checkJsApi',

     'onMenuShareTimeline',

     'onMenuShareAppMessage',

     'onMenuShareQQ',

     'onMenuShareWeibo',

     'hideMenuItems',

     'showMenuItems',

     'hideAllNonBaseMenuItem',

     'showAllNonBaseMenuItem',

     'translateVoice',

     'startRecord',

     'stopRecord',

     'onRecordEnd',

     'playVoice',

     'pauseVoice',

     'stopVoice',

     'uploadVoice',

     'downloadVoice',

     'chooseImage',

     'previewImage',

     'uploadImage',

     'downloadImage',

     'getNetworkType',

     'openLocation',

     'getLocation',

     'hideOptionMenu',

     'showOptionMenu',

     'closeWindow',

     'scanQRCode',

     'chooseWXPay',

     'openProductSpecificView',

     'addCard',

     'chooseCard',

     'openCard'

     ]

    };

    //let shareUrl = 'http://xxx' + location.pathname;

    let getWxParam = (url, wxOptions) => {

     let url = location.href.split('#')[0];

     url = encodeURIComponent(url);

     let promise = new Promise((resolve, reject)=> {

      $.ajax({

       type:'GET',

       url: 'http://xxx/xxx?param='+url,

       dataType: 'jsonp'

      })

      .then((data)=> {

       let wxParam = data;

       console.log(wxParam);

       wxOptions.appId = 'wxeb5c3f4a03b880f0';

       wxOptions.timestamp = wxParam.timestamp;

       wxOptions.nonceStr = wxParam.nonceStr;

       wxOptions.signature = wxParam.signature;

       wx.config(wxOptions);

       wx.error((res)=> {

        alert(res.errMsg);

       })

       resolve();

      }, (error)=> {

       console.log(error);

      })

     });

     return promise;

    }

    //分享到朋友圈

    let shareSocial = (param)=> {

     wx.onMenuShareTimeline({

       title: param.title, // 分享標(biāo)題

       link: param.link, // 分享鏈接

       imgUrl: param.imgUrl, // 分享圖標(biāo)

       success: function () { 

        // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù)

        param.suCallback();

       },

       cancel: function () { 

        // 用戶取消分享后執(zhí)行的回調(diào)函數(shù)

        param.failCalback();

       }

      });

    }

    //分享給好友

    let shareToFriends = (param) => {

     wx.onMenuShareAppMessage({

       title: param.title,

       desc: param.desc,

       link: param.link,

       imgUrl: param.imgUrl,

       trigger: function (res) {

       },

       success: function (res) {

       param.suCallback();

       },

       cancel: function (res) {

       },

       fail: function (res) {

       param.failCalback();

       console.alert(JSON.stringify(res));

       }

     });

    }

    //title,desc,link,imgUrl,suCallback, failCalback

    let jssdk = (param) => {

     wx.ready(()=> {

      //分享到朋友圈

      shareSocial(param);

      shareToFriends(param);

     })

    }

    function callWx(param, wxoptions) {

     getWxParam(param.url, wxOptions).then(()=> {

      jssdk(param);

     })

    }

    //param = {url: '', title:'',desc:'',link:'',imgUrl:'',suCallback:func, failCalback: func}

    module.exports = {

     wxDefaultOptions,//更改配置

     callWx, //默認(rèn)配置,進(jìn)行config配置 和ready后定制微信分享內(nèi)容,

    }

    以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:微信jssdk用法匯總
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報(bào)班

    • 報(bào)班類型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專用圖標(biāo)