JSSDK使用分享
最近做了一個h5活動頁面,需要自定義微信分享的標題、詳情、縮圖和url,使用到了jssdk,功能已經完成,總結一下這個東西到底怎麼用(使用的是vue框架)
先來做下思想建設:
使用微信瀏覽器開啟任何一個頁面都可以點選右上角的···進行分享,這個功能只是可以自定義分享出去顯示的標題、詳情、縮圖和url,如圖
微信瀏覽器不支援主動喚起分享,所以如果你想做點選某個按鈕就開啟微信好友列表進行分享這種類似功能的話,就別想了,只能給使用者一個提示,讓他自己去分享,如圖
配置自定義分享內容的時間節點在使用者可能分享之前的任一時刻,最好在剛開啟頁面時就立即進行配置,防止使用者已經點選分享了,還沒有配置好自定義內容的情況
接下來看下程式碼實現:
先讀官方文件:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
安裝‘weixin-js-sdk’包
將‘weixin-js-sdk’放到Vue原型上
在進入到頁面之後從後臺提供的介面獲取微信需要的許可權驗證資訊,然後通過config介面注入許可權驗證配置
data() {
return {
toastTime: 2000,
// 微信配置
weixinConfig: {
debug: false, // 除錯時可以開啟,能看到每一步的返回結果
appId: '', // 後臺會返回
timestamp: null, // 後臺會返回
nonceStr: '', // 後臺會返回
signature: '', // 後臺會返回
jsApiList: ['onMenuShareAppMessage', 'onMenuShareTimeline'], // 要包含所有你要用到的方法
},
// 自定義微信分享內容
shareContent: {
url: `${window.location.href.split('?')[0]}?inviteUserId=${this.inviteUserId}`,
title: '感恩節狂歡!感恩紅包大回饋!',
desc: '快來和我一起瓜分現金紅包,先到先得,可直接提現到支付寶',
},
// 微信分享縮圖
// 原本用的base64圖片,但是不知道為什麼安卓顯示不出來,後來改成了https圖片
wxShareImg: `https://${location.host}/page/news/pdd/thumbnail.png`,
}
},
async created() {
try {
await this.getWechatConfig()
await this.initWeixin()
} catch (e) {
console.dir(e)
}
}
methods: {
async getWechatConfig() {
try {
const data = await this.$axios.get(
'/WXB/news-server/app/wechat/jssdkConfig',
{
headers: this.requestheader,
params: {
appCode: this.requestheader.AppCode,
url: window.location.href, // 需要把url傳給後臺,後臺需要這個來生成許可權驗證配置
},
}
)
if (data.data.code === 200) {
this.weixinConfig.signature = data.data.data.signature
this.weixinConfig.appId = data.data.data.appId
this.weixinConfig.nonceStr = data.data.data.nonceStr
this.weixinConfig.timestamp = data.data.data.timestamp
} else {
this.$toast({
message: '請求錯誤',
duration: this.toastTime,
})
}
} catch (e) {
this.netError = false
this.$toast({
message: '請求錯誤',
duration: this.toastTime,
})
}
},
async initWeixin() {
const that = this
this.$wx.config(this.weixinConfig)
await new Promise((resolve) => {
that.$wx.ready(() => {
that.$wx.onMenuShareAppMessage({
title: that.shareContent.title,
desc: that.shareContent.desc,
link: that.shareContent.url,
imgUrl: that.wxShareImg,
success() {
that.$toast({
message: '分享成功',
duration: that.toastTime,
})
},
cancel() {
that.$toast({
message: '分享失敗',
duration: that.toastTime,
})
},
})
that.$wx.onMenuShareTimeline({
title: that.shareContent.title,
link: that.shareContent.url,
imgUrl: that.wxShareImg,
success() {
that.$toast({
message: '分享成功',
duration: that.toastTime,
})
},
cancel() {
that.$toast({
message: '分享失敗',
duration: that.toastTime,
})
},
})
resolve()
})
})
},
}
搞到這裡就可以聯調了,常見的報錯解決方法請參考官方文件的“附錄5-常見錯誤及解決方法”
相關文章
- 如何在 Vue Spa 中使用微信 jssdk 分享介面VueJS
- 微信公眾號jssdk分享功能通用寫法JS
- 微信JSSDK遇見的坑--vue微信自定義分享JSVue
- TNW-微信公眾號中如何使用JSSDKTNWJS
- Hybrid APP 開發(六):JSSDKAPPJS
- 微信JSSDK與NodeJS深度整合NodeJS
- vue專案接入微信JSSDK的坑VueJS
- H5與企業微信jssdk整合H5JS
- vite如何打包vue3外掛為JSSDKViteVueJS
- 微信公眾號開發Django JSSDK授權DjangoJS
- vue+微信支付目錄+JSSDK簽名解決方案VueJS
- Polymer使用經驗分享
- perf效能分析工具使用分享
- ESC快捷鍵使用方法分享
- sed命令簡單使用示例分享
- 分享一些 Broadcast 使用技巧AST
- 如何使用SQL查詢檢視,Postico使用技巧分享~SQL
- OB導數工具使用經驗分享
- 可免費使用的免費API分享API
- critters 開發包的使用案例分享
- IntelliJ IDEA 超實用使用技巧分享IntelliJIdea
- 桌面速記助手SideNotes 使用技巧分享~IDE
- cuda在ubuntu的安裝使用分享Ubuntu
- 技術分享 | 使用 RPM 部署 Oceanbase Proxy
- 微信JSSDK上傳圖片過程中編輯圖片描述,解決思路記錄JS
- 每週分享五個 PyCharm 使用技巧(一)PyCharm
- 使用微信js-sdk自定義分享JS
- 類類分享-使用者金字塔
- 分享 Laravel 中使用 vuejs 教學視訊LaravelVueJS
- 每週分享五個 PyCharm 使用技巧(三)PyCharm
- 每週分享五個 PyCharm 使用技巧(二)PyCharm
- Linux 筆記分享七:使用者管理Linux筆記
- SAP Marketing Cloud Restful API SDK 使用案例分享CloudRESTAPI
- RedHat下MySQL的基本使用方法分享RedhatMySql
- 分享Linux Grep高階使用者指南Linux
- 分享一下 Vue 中 nextTick 的使用Vue
- Xray使用的一些經驗分享(xray+burp的使用)
- 高頻率使用的免費API介面分享API