123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- Page({
- data: {
- templateId: '',
- subscribeMessageResult: '',
- requestSubscribeMessageResult: '',
- wxacodeSrc: '',
- wxacodeResult: '',
- showClearWXACodeCache: false,
- },
- async getSubscribeMessageTemplate() {
- try {
- const { result } = await wx.cloud.callFunction({
- name: 'openapi',
- data: {
- action: 'requestSubscribeMessage',
- },
- })
- const templateId = result
- console.warn('[云函数] [openapi] 获取订阅消息模板 调用成功:', templateId)
- this.setData({
- templateId,
- })
- } catch (err) {
- wx.showToast({
- icon: 'none',
- title: '调用失败',
- })
- console.error('[云函数] [openapi] 获取订阅消息模板 调用失败:', err)
- }
- },
- async requestSubscribeMessage() {
- const templateId = this.data.templateId
- if (!templateId) {
- wx.showModal({
- title: '发送失败',
- content: '请先获取模板 ID',
- showCancel: false,
- })
- }
- wx.requestSubscribeMessage({
- tmplIds: [templateId],
- success: (res) => {
- if (res[templateId] === 'accept') {
- this.setData({
- requestSubscribeMessageResult: '成功',
- })
- } else {
- this.setData({
- requestSubscribeMessageResult: `失败(${res[templateId]})`,
- })
- }
- },
- fail: (err) => {
- this.setData({
- requestSubscribeMessageResult: `失败(${JSON.stringify(err)})`,
- })
- },
- })
- },
- sendSubscribeMessage(e) {
- this.setData({
- subscribeMessageResult: '',
- })
- wx.cloud.callFunction({
- name: 'openapi',
- data: {
- action: 'sendSubscribeMessage',
- templateId: this.data.templateId,
- },
- success: res => {
- console.warn('[云函数] [openapi] subscribeMessage.send 调用成功:', res)
- wx.showModal({
- title: '发送成功',
- content: '请返回微信主界面查看',
- showCancel: false,
- })
- wx.showToast({
- title: '发送成功,请返回微信主界面查看',
- })
- this.setData({
- subscribeMessageResult: JSON.stringify(res.result)
- })
- },
- fail: err => {
- wx.showToast({
- icon: 'none',
- title: '调用失败',
- })
- console.error('[云函数] [openapi] subscribeMessage.send 调用失败:', err)
- }
- })
- },
- submitSubscribeMessageForm(e) {
- this.setData({
- subscribeMessageResult: '',
- })
- wx.cloud.callFunction({
- name: 'openapi',
- data: {
- action: 'sendSubscribeMessage',
- formId: e.detail.formId,
- },
- success: res => {
- console.warn('[云函数] [openapi] subscribeMessage.send 调用成功:', res)
- wx.showModal({
- title: '发送成功',
- content: '请返回微信主界面查看',
- showCancel: false,
- })
- wx.showToast({
- title: '发送成功,请返回微信主界面查看',
- })
- this.setData({
- templateMessageResult: JSON.stringify(res.result)
- })
- },
- fail: err => {
- wx.showToast({
- icon: 'none',
- title: '调用失败',
- })
- console.error('[云函数] [openapi] templateMessage.send 调用失败:', err)
- }
- })
- },
- onGetWXACode() {
- this.setData({
- wxacodeSrc: '',
- wxacodeResult: '',
- showClearWXACodeCache: false,
- })
- // 此处为演示,将使用 localStorage 缓存,正常开发中文件 ID 应存在数据库中
- const fileID = wx.getStorageSync('wxacodeCloudID')
- if (fileID) {
- // 有云文件 ID 缓存,直接使用该 ID
- // 如需清除缓存,选择菜单栏中的 “工具 -> 清除缓存 -> 清除数据缓存”,或在 Storage 面板中删掉相应的 key
- this.setData({
- wxacodeSrc: fileID,
- wxacodeResult: `从本地缓存中取得了小程序码的云文件 ID`,
- showClearWXACodeCache: true,
- })
- console.log(`从本地缓存中取得了小程序码的云文件 ID:${fileID}`)
- } else {
- wx.cloud.callFunction({
- name: 'openapi',
- data: {
- action: 'getWXACode',
- },
- success: res => {
- console.warn('[云函数] [openapi] wxacode.get 调用成功:', res)
- wx.showToast({
- title: '调用成功',
- })
- this.setData({
- wxacodeSrc: res.result,
- wxacodeResult: `云函数获取二维码成功`,
- showClearWXACodeCache: true,
- })
- wx.setStorageSync('wxacodeCloudID', res.result)
- },
- fail: err => {
- wx.showToast({
- icon: 'none',
- title: '调用失败',
- })
- console.error('[云函数] [openapi] wxacode.get 调用失败:', err)
- }
- })
- }
- },
- clearWXACodeCache() {
- wx.removeStorageSync('wxacodeCloudID')
- this.setData({
- wxacodeSrc: '',
- wxacodeResult: '',
- showClearWXACodeCache: false,
- })
- wx.showToast({
- title: '清除成功',
- })
- },
- })
|