欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue微信公眾號(hào)網(wǎng)頁(yè)分享的示例代碼

 更新時(shí)間:2020年05月28日 11:23:13   作者:_release  
這篇文章主要介紹了Vue微信公眾號(hào)網(wǎng)頁(yè)分享的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

今天做了個(gè)分享功能,反正挺詭異的,下面就來(lái)說(shuō)一說(shuō)步驟

后端使用egg.js,代碼如下:

'use strict';

const Subscription = require('egg').Subscription;

class AccessToken extends Subscription {
 static get schedule() {
  return {
   interval: '2h',//2小時(shí)獲取一次
   type: 'all',
  };
 }

 async subscribe() {
  const config = this.ctx.app.config.wechat_config;
  const url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET'.replace('APPID', config.appId)
   .replace('APPSECRET', config.appSecret);
  const res = await this.ctx.curl(url, {
   dataType: 'json',
  });
  console.log(res);//accesstoken
  if (res.data.errcode) {
   return;
  }
  console.log('token ' + res.data.access_token);
  const jsUrl = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi'.replace('ACCESS_TOKEN', res.data.access_token);
  const jsRes = await this.ctx.curl(jsUrl, {
   dataType: 'json',
  });
  console.log('ticket ' + jsRes.data.ticket);//ticket
  this.ctx.app.ticket = jsRes.data.ticket;
  this.ctx.app.access_token = res.data.access_token;
 }
}

module.exports = AccessToken;
async getJSsdk() {
  const appId = this.ctx.app.config.wechat_config.appId;//appid
  const ticket = this.ctx.app.ticket;//初始化時(shí)獲得的ticket
  const nonceStr = Math.random()
   .toString(36)
   .substr(2, 15);
  const timestamp = parseInt(new Date().getTime() / 1000);//秒為單位的時(shí)間戳
  let url = this.ctx.query.link; //前端的頁(yè)面地址
  url = decodeURIComponent(url);//解碼
  const string = 'jsapi_ticket=' + ticket + '&noncestr=' + nonceStr + '&timestamp=' + timestamp + '&url=' + url;
  const hash = crypto.createHash('sha1');
  hash.update(string);
  const signature = hash.digest('hex');//生成簽名
  this.ctx.body = {
   status: true,
   message: '獲取成功',
   data
  };
 };

步驟

1.在vue項(xiàng)目中public目錄下的index.html中引入

<script src="http://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>

2.在想分享的組件的mounted中加入如下代碼:

//如果不創(chuàng)建meta標(biāo)簽分享出去的就會(huì)沒(méi)有描述
var oMeta = document.createElement('meta');
oMeta.content = '隨意的內(nèi)容';//這里隨便寫
oMeta.name = 'keywords';
document.getElementsByTagName('head')[0].appendChild(oMeta);
var oMeta1 = document.createElement('meta');
oMeta1.content = '隨意的內(nèi)容';//這里隨便寫
oMeta1.name = 'description';
document.getElementsByTagName('head')[0].appendChild(oMeta1);

3.initJSSDK方法體:

function initJSSDK() {
  let wechaturl = window.location.href.split('#')[0];//單頁(yè)應(yīng)用就獲取#前面的東西
   let link = encodeURIComponent(wechaturl);
   const jssdk = await getJSSDK(link); //給后端接口傳過(guò)去當(dāng)前頁(yè)面的地址,注意這個(gè)地址要配置在js安全域名里
   wx.ready(() => {
    let shareData = {
     title: this.detail.title,
     desc: this.detail.summary,
     link: location.href, //必須是js安全域名下的地址(分享出去的沒(méi)有圖片顯示請(qǐng)檢查這里的link參數(shù))
     imgUrl: window.wechatImg,//隨意地址的圖片都行,最好是jpg的,經(jīng)測(cè)試無(wú)圖片大小約束
     success: function () {
      console.log(1);
     },
     cancel: function () {
      console.log(2);
     }
    };
    wx.onMenuShareAppMessage(shareData);//分享給好友
    wx.onMenuShareQQ(shareData);//分享給手機(jī)QQ
    wx.onMenuShareQZone(shareData);//分享到QQ空間
    wx.onMenuShareTimeline(shareData);//分享到朋友圈
   });
   wx.error(function (res) {
    console.log(res);
   });
   wx.config({
    debug: true,
    appId: jssdk.appId, // 必填,公眾號(hào)的唯一標(biāo)識(shí)
    timestamp: jssdk.timestamp, // 必填,生成簽名的時(shí)間戳,精確到秒(后端返回)
    nonceStr: jssdk.nonceStr, // 必填,生成簽名的隨機(jī)串(后端返回)
    signature: jssdk.signature, // 必填,簽名(后端返回)
    jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline', 'onMenuShareQQ', 'onMenuShareQZone']
   });
}

常見(jiàn)問(wèn)題

無(wú)效的簽名:可能是前端encode地址過(guò)去后,后端忘記解碼了,也有可能是因?yàn)榍岸说刂穫麇e(cuò)了或者沒(méi)有encode就傳過(guò)去了,后端簽名算法出錯(cuò)的機(jī)率比較小.

還有可能是后端的ticket失效了(這個(gè)在開(kāi)發(fā)過(guò)程中機(jī)率比較小)

無(wú)效的domain:前端給后端傳的地址可能沒(méi)有配置在js安全域名中

jssdk版本就用上面的1.4版本,同樣的代碼用了新版的就直接不行了,也沒(méi)有任何報(bào)錯(cuò)。

暫時(shí)沒(méi)有發(fā)現(xiàn)網(wǎng)上所說(shuō)的蘋果會(huì)出現(xiàn)問(wèn)題。經(jīng)測(cè)試都是好的

到此這篇關(guān)于Vue微信公眾號(hào)網(wǎng)頁(yè)分享的示例代碼的文章就介紹到這了,更多相關(guān)Vue公眾號(hào)網(wǎng)頁(yè)分享內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3遞歸組件封裝的全過(guò)程記錄

    vue3遞歸組件封裝的全過(guò)程記錄

    組件是可以在自己的模板中調(diào)用自身的,不過(guò)他們只能通過(guò)name選項(xiàng)來(lái)做這件事,下面這篇文章主要給大家介紹了關(guān)于vue3遞歸組件封裝的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 詳解element-ui設(shè)置下拉選擇切換必填和非必填

    詳解element-ui設(shè)置下拉選擇切換必填和非必填

    這篇文章主要介紹了詳解element-ui設(shè)置下拉選擇切換必填和非必填,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Vue組件庫(kù)ElementUI實(shí)現(xiàn)表格列表分頁(yè)效果

    Vue組件庫(kù)ElementUI實(shí)現(xiàn)表格列表分頁(yè)效果

    這篇文章主要為大家詳細(xì)介紹了Vue組件庫(kù)ElementUI實(shí)現(xiàn)表格列表分頁(yè)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Vue-input框checkbox強(qiáng)制刷新問(wèn)題

    Vue-input框checkbox強(qiáng)制刷新問(wèn)題

    這篇文章主要介紹了Vue-input框checkbox強(qiáng)制刷新問(wèn)題,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04
  • vue el-table實(shí)現(xiàn)行內(nèi)編輯功能

    vue el-table實(shí)現(xiàn)行內(nèi)編輯功能

    這篇文章主要為大家詳細(xì)介紹了vue el-table實(shí)現(xiàn)行內(nèi)編輯功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • Vue 權(quán)限控制的兩種方法(路由驗(yàn)證)

    Vue 權(quán)限控制的兩種方法(路由驗(yàn)證)

    這篇文章主要介紹了Vue 權(quán)限控制的兩種方法(路由驗(yàn)證),每種方法給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 代碼分析vue中如何配置less

    代碼分析vue中如何配置less

    在本篇文章中,我們給大家詳細(xì)講述了vue中如何配置less的詳細(xì)代碼和步驟,有需要的朋友跟著學(xué)習(xí)下。
    2018-09-09
  • vue實(shí)現(xiàn)引入本地json的方法分析

    vue實(shí)現(xiàn)引入本地json的方法分析

    這篇文章主要介紹了vue實(shí)現(xiàn)引入本地json的方法,結(jié)合實(shí)例形式分析了vue.js加載本地json文件及解析json數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • vue實(shí)現(xiàn)表格增刪改查效果的實(shí)例代碼

    vue實(shí)現(xiàn)表格增刪改查效果的實(shí)例代碼

    本篇文章主要介紹了vue實(shí)現(xiàn)增刪改查效果的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • 學(xué)習(xí) Vue.js 遇到的那些坑

    學(xué)習(xí) Vue.js 遇到的那些坑

    這篇文章主要介紹了學(xué)習(xí) Vue.js 遇到的那些坑,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2021-02-02

最新評(píng)論