微信公眾號開發之vue專案引入JS-SDK
阿新 • • 發佈:2021-02-16
目前有看到的庫有weixin-jsapi、weixin-js-sdk
1.weixin-js-sdk
是基於jweixin-1.6.0版本的
說明: 僅將官方 js-sdk 釋出到 npm,支援 CommonJS,便於 browserify, webpack 等直接使用
js原始碼:https://res.wx.qq.com/open/js/jweixin-1.6.0.js
官方使用說明:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115
2.weixin-jsapi
是基於jweixin-1.0.0版本的
微信官方 js-sdk es6 版本 說明: 僅將官方 js-sdk 釋出到 npm,便於 webpack 使用
js原始碼:http://res.wx.qq.com/open/js/jweixin-1.0.0.js
官方使用說明:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
3.專案實踐
目前專案中只使用到了以下api
我使用的是weixin-jsapi,由於按照同樣的方式引入weixin-js-sdk,就有問題,以下為我的mixin檔案
import { Component, Vue } from 'vue-property-decorator' import { getJsapiTicket } from "@/api"; import { getLocalStorage } from "@/utils/utils"; import wx from "weixin-jsapi"; // var wx = require('weixin-js-sdk'); @Component({ name: 'WxConfigMixin' }) export default class extends Vue { public ticketUrl: any = '' public jsapiTicketObj: any = '' public contributors: string = '' public wishText: string = '' public isDetail: boolean = false public async getJsapiTicket() { const res: any = await getJsapiTicket(this.ticketUrl); this.jsapiTicketObj = res if(this.isDetail) { this.wxConfig() } } public wxConfig () { let contributors: any = '' if(this.isDetail) { contributors = getLocalStorage('readyForRushData').contributors } else { contributors = this.contributors } let link = this.ticketUrl wx.config({ debug: false, // 開啟除錯模式,呼叫的所有api的返回值會在客戶端alert出來,若要檢視傳入的引數,可以在pc端開啟,引數資訊會通過log打出,僅在pc端時才會列印。 appId: this.jsapiTicketObj.appId, // 必填,公眾號的唯一標識 timestamp: this.jsapiTicketObj.timestamp, // 必填,生成簽名的時間戳 nonceStr: this.jsapiTicketObj.nonceStr, // 必填,生成簽名的隨機串 signature: this.jsapiTicketObj.signature, // 必填,簽名 jsApiList: [ 'onMenuShareTimeline', // 分享到朋友圈介面 'onMenuShareAppMessage', // 分享到朋友介面 // 'updateTimelineShareData', // 分享到朋友圈介面v1.4.0 // 'updateAppMessageShareData', // 分享到朋友介面v1.4.0 'hideMenuItems', ], }); wx.checkJsApi({ jsApiList: [ 'onMenuShareTimeline', // 分享到朋友圈介面 'onMenuShareAppMessage', // 分享到朋友介面 // 'updateTimelineShareData', // 分享到朋友圈介面 // 'updateAppMessageShareData', // 分享到朋友介面 'hideMenuItems', ], success: function (res: any) { // console.log(res) } }) wx.ready(function (res: any) { wx.hideMenuItems({ menuList: ['menuItem:share:qq', "menuItem:share:weiboApp", 'menuItem:share:QZone'] // 要隱藏的選單項,只能隱藏“傳播類”和“保護類”按鈕,所有menu項見附錄3 }); // 微信分享的資料 var shareData: any = { imgUrl: '圖片伺服器地址', // 分享顯示的縮圖地址 link: link, // 分享地址 desc: '分享描述', // 分享描述 title: `分享標題`, // 分享標題 success: function () { // 分享成功可以做相應的資料處理 alert('分享成功') }, fail: function () { alert('呼叫失敗') }, complete: function () { // alert('呼叫結束') } } // wx.updateTimelineShareData(shareData) // wx.updateAppMessageShareData(shareData) wx.onMenuShareTimeline(shareData) wx.onMenuShareAppMessage(shareData) }); wx.error(function (res: any) { // console.log(res); }); } }
有什麼問題的可以評論交流。
感覺有用的或者幫助到你的可以收藏、點贊、關注 一鍵三連。
(有問題需要交流可以加QQ245602951)