最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)微信二次分享以及自定義分享的示例

 更新時(shí)間:2019年03月20日 15:19:45   作者:桃小妖  
這篇文章主要介紹了vue實(shí)現(xiàn)微信二次分享以及自定義分享的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

微信二次分享/自定義分享

從App中使用App分享(一次分享)

使用微信導(dǎo)航欄的分享(二次分享) --已做處理

使用微信導(dǎo)航欄的分享(二次分享) --未做處理

如上圖,如果不做相關(guān)處理,頁面進(jìn)行二次分享,用戶看到的就是鏈接+空圖,上面顯示的文案(考拉閱讀)實(shí)際上是獲取的title標(biāo)簽中的文案,我在網(wǎng)上查的相關(guān)例子有說明,圖片如果不設(shè)置,將會(huì)自動(dòng)獲取瀏覽器渲染的第一張圖片,經(jīng)過個(gè)人測試,并沒有實(shí)現(xiàn)(朋友圈同理,不做圖片展示)。

微信js-sdk說明文檔

先登錄微信公眾平臺(tái)進(jìn)入“公眾號(hào)設(shè)置”的“功能設(shè)置”里填寫“JS接口安全域名”。(一般后端配置)

前端需要調(diào)取后端的接口,獲取微信的congfig所需要的參數(shù)

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: '',// 必填,簽名
 jsApiList: [] // 必填,需要使用的JS接口列表
});

jsApiList里面需要填寫你調(diào)用的jsApi,updateAppMessageShareData(分享微信,QQ),updateTimelineShareData(微信朋友圈,QQ空間),onMenuShareTimeline/onMenuShareAppMessage/onMenuShareQQ 這三個(gè)即將廢棄,不建議使用。

⚠️但是在本次開發(fā)中,我只使用了updateAppMessageShareData,updateTimelineShareData,個(gè)別Android(微信版本7.0.3)分享出來的還是沒有圖片和文案,ios的是沒有問題,所以又加上了棄用的onMenuShareTimeline,onMenuShareAppMessage之后,安卓機(jī)也可以正常分享。

判斷當(dāng)前客戶端版本是否支持指定JS接口

wx.checkJsApi({
 jsApiList: ['chooseImage'], // 需要檢測的JS接口列表,所有JS接口列表見附錄2,
 success: function(res) {
 // 以鍵值對的形式返回,可用的api值true,不可用為false
 // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
 }
});

wx.config中的 debug 設(shè)為true,在微信測試時(shí)會(huì)自動(dòng)彈出相關(guān)信息,在微信開發(fā)者工具中也會(huì)打印出流程(分為begin,end),如下圖

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

2、在ready接口中調(diào)取updateAppMessageShareData,updateTimelineShareData方法

wx.ready(function () { //需在用戶可能點(diǎn)擊分享按鈕前就先調(diào)用
 wx.updateAppMessageShareData({ 
  title: '', // 分享標(biāo)題
  desc: '', // 分享描述
  link: '', // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁面對應(yīng)的公眾號(hào)JS安全域名一致
  imgUrl: '', // 分享圖標(biāo)
  success: function () {
   // 設(shè)置成功
  }
 })
});

在vue的開發(fā)項(xiàng)目中,可在created或mounted生命周期中調(diào)用

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

wx.error(function(res){
 // config信息驗(yàn)證失敗會(huì)執(zhí)行error函數(shù),如簽名過期導(dǎo)致驗(yàn)證失敗,具體錯(cuò)誤信息可以打開config的debug模式查看,也可以在返回的res參數(shù)中查看,對于SPA可以在這里更新簽名。
});

⚠️需要注意的點(diǎn)

通過后端的接口獲取微信配置的參數(shù)時(shí),需要傳遞當(dāng)前頁面url

  • - url(當(dāng)前網(wǎng)頁的URL,不包含#及其后面部分),如果沒有#,則需要傳遞完整的url
  • - url需要編碼    encodeURIComponent(url)

代碼如下

// wetchat.js -- 個(gè)人封裝
import wx from 'weixin-js-sdk'; // 引入wxJS
import apiUrl from "@/api/index"; // 本項(xiàng)目的api (根據(jù)自己項(xiàng)目)
export function wxChatShare(param) {
 let _url = encodeURIComponent(param.url) // 當(dāng)前頁面的url
 apiUrl.wechatConfig(_url) // wechatConfig是獲取微信配置相關(guān)信息的接口,此處根據(jù)個(gè)人項(xiàng)目寫法而定,類似于this.$ajax
 .then (res => {
  if(res.data.code==200) {
  // 接口返回配置信息
   wx.config({
    debug: false,
    appId: res.data.content.appid,
    timestamp: res.data.content.timestamp, // 必填,生成簽名的時(shí)間戳
    nonceStr: res.data.content.nonceStr, // 必填,生成簽名的隨機(jī)串
    signature: res.data.content.signature, // 必填,簽名
    jsApiList: [ // 用的方法都要加進(jìn)來
     'updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareTimeline', 'onMenuShareAppMessage'
    ]
   });
   wx.ready(function () {
    //分享到朋友圈

    wx.updateTimelineShareData({ 
     title: param.title, // 分享標(biāo)題
     link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁面對應(yīng)的公眾號(hào)JS安全域名一致
     imgUrl: param.imgUrl, // 分享圖標(biāo)
     success: function () {
      // 設(shè)置成功
      console.log("分享到朋友圈成功返回的信息為:", res);
      this.$Message.message("設(shè)置成功!");
     }
    })

    wx.onMenuShareTimeline({
     title: param.title, // 分享標(biāo)題
     link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁面對應(yīng)的公眾號(hào)JS安全域名一致
     imgUrl: param.imgUrl, // 分享圖標(biāo)
     success: function () {
     // 用戶點(diǎn)擊了分享后執(zhí)行的回調(diào)函數(shù)
     },
    })

    //分享給朋友

    wx.updateAppMessageShareData({ 
     title: param.title, // 分享標(biāo)題
     desc: param.desc, // 分享描述
     link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁面對應(yīng)的公眾號(hào)JS安全域名一致
     imgUrl: param.imgUrl, // 分享圖標(biāo)
     success: function () {
      // 設(shè)置成功
      console.log("分享到朋友圈成功返回的信息為:", res);
      this.$Message.message("設(shè)置成功!");
     }
    })
    wx.onMenuShareAppMessage({
     title: param.title, // 分享標(biāo)題
     desc: param.desc, // 分享描述
     link: param.link, // 分享鏈接,該鏈接域名或路徑必須與當(dāng)前頁面對應(yīng)的公眾號(hào)JS安全域名一致
     imgUrl: param.imgUrl, // 分享圖標(biāo)
     type: param.type, // 分享類型,music、video或link,不填默認(rèn)為link
     dataUrl: param.dataUrl, // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空
     success: function () {
     // 用戶點(diǎn)擊了分享后執(zhí)行的回調(diào)函數(shù)
     }
    });
   });
   wx.error(function (res) {
    console.log('驗(yàn)證失敗返回的信息:', res);
   });
  } else {
   console.log(res.data.message);
  }
 })
 }
// home.vue

 import * as wechatJS from '@/utils/wechat' // 引入wechat.js

// 寫在方法中調(diào)用,或者在生命周期中調(diào)用
let _param = {
 studentId: 1, // 個(gè)人項(xiàng)目而定
 activityId: 1, // 個(gè)人項(xiàng)目而定
 url: window.location.href, // 當(dāng)前頁面url
 title: "為我點(diǎn)贊,一起免費(fèi)搶考拉閱讀VIP會(huì)員卡,暢讀一萬本好書~", // 分享數(shù)據(jù)配置
 desc: "孩子要讀書,上考拉閱讀", // 分享數(shù)據(jù)配置
 link: _nowUrl, // 分享數(shù)據(jù)配置
 imgUrl: url, // 分享數(shù)據(jù)配置 -- 全路徑
 type: "link", // 分享類型,music、video或link,不填默認(rèn)為link
 dataUrl: " ", // 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于Vue單頁面骨架屏實(shí)踐記錄

    關(guān)于Vue單頁面骨架屏實(shí)踐記錄

    這篇文章主要給大家介紹了關(guān)于Vue單頁面骨架屏實(shí)踐的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-12-12
  • vue中使用echarts刷新可以正常渲染但路由跳轉(zhuǎn)不顯示的問題解決

    vue中使用echarts刷新可以正常渲染但路由跳轉(zhuǎn)不顯示的問題解決

    在?Vue?中使用?ECharts?組件時(shí),遇到路由跳轉(zhuǎn)后圖表不顯示的問題可能是因?yàn)榻M件銷毀和重新創(chuàng)建的原因,所以本文給大家介紹了vue中使用echarts刷新可以正常渲染但路由跳轉(zhuǎn)不顯示問題的解決方法,需要的朋友可以參考下
    2024-02-02
  • vue cli 3.0 使用全過程解析

    vue cli 3.0 使用全過程解析

    這篇文章主要介紹了vue-cli 3.0 使用全過程,本文通過項(xiàng)目實(shí)例相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-06-06
  • vue 綁定使用 touchstart touchmove touchend解析

    vue 綁定使用 touchstart touchmove touchend解析

    這篇文章主要介紹了vue 綁定使用 touchstart touchmove touchend解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 使用kbone解決Vue項(xiàng)目同時(shí)支持小程序問題

    使用kbone解決Vue項(xiàng)目同時(shí)支持小程序問題

    這篇文章主要介紹了使用kbone解決Vue項(xiàng)目同時(shí)支持小程序問題,本文通過一個(gè)todo的例子跟大家詳細(xì)介紹,需要的朋友可以參考下
    2019-11-11
  • 輕松理解vue的雙向數(shù)據(jù)綁定問題

    輕松理解vue的雙向數(shù)據(jù)綁定問題

    Vue是當(dāng)前很火的一款MVVM的輕量級(jí)框架,它是以數(shù)據(jù)驅(qū)動(dòng)和組件化的思想構(gòu)建的。因?yàn)樗峁┝撕啙嵰子诶斫獾腶pi,使得我們很容易上手。這篇文章給大家介紹了vue雙向數(shù)據(jù)綁定問題,感興趣的朋友一起看看吧
    2017-10-10
  • vue業(yè)務(wù)實(shí)例之組件遞歸及其應(yīng)用

    vue業(yè)務(wù)實(shí)例之組件遞歸及其應(yīng)用

    目中出現(xiàn)多級(jí)菜單時(shí),需要多層for循環(huán)時(shí),但是當(dāng)菜單增加層級(jí)時(shí),需要在頁面結(jié)構(gòu)中增加一層for循環(huán),這時(shí)我們可以使用組件遞歸的思想來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue業(yè)務(wù)實(shí)例之組件遞歸及其應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • vue-table實(shí)現(xiàn)添加和刪除

    vue-table實(shí)現(xiàn)添加和刪除

    這篇文章主要為大家詳細(xì)介紹了vue-table實(shí)現(xiàn)添加和刪除,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Vue 簡單實(shí)現(xiàn)前端權(quán)限控制的示例

    Vue 簡單實(shí)現(xiàn)前端權(quán)限控制的示例

    這篇文章主要介紹了Vue 簡單實(shí)現(xiàn)前端權(quán)限控制的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • vue中組件間多種傳值方式案例詳解

    vue中組件間多種傳值方式案例詳解

    vue中每個(gè)組件都是隔離的,包括父組件和子組件,各組件之間需要數(shù)據(jù)通信,就涉及到了組件傳值,本文給大家介紹vue中組件間多種傳值方式案例,感興趣的朋友跟隨小編一起看看吧
    2024-03-03

最新評論

绵阳市| 壤塘县| 揭西县| 金山区| 肇州县| 潮安县| 洪江市| 扬州市| 双城市| 广元市| 兴安县| 兰考县| 姚安县| 山阳县| 视频| 泉州市| 钦州市| 达州市| 屏东县| 平阳县| 五台县| 土默特左旗| 广灵县| 临潭县| 常熟市| 成武县| 会同县| 海盐县| 岗巴县| 义马市| 滦平县| 兴文县| 崇州市| 荆州市| 抚宁县| 呼伦贝尔市| 榕江县| 莱阳市| 集贤县| 六枝特区| 确山县|