【微信小程序系列】微信小程序简单的实现发送订阅信息

项目结构

两个云函数一个页面

获取模板

注:详细内容中的参数很重要,一会要在云函数里用

代码

app.js

// app.js
App({onLaunch() {wx.cloud.init({//环境idenv:"XXXXXXXXXXXXXXXXXXXXXX"    //自己的云环境id})},globalData: {userInfo: null}
})

index.wxml

<!-- index.wxml -->
<button bindtap="getOpenid">1.获取用户openid</button>
<button bindtap="shouquan">2.获取用户授权</button>
<input placeholder="输入时间" bindinput="getTime"></input>
<button bindtap="sendOne">3.发送消息给单个用户</button>

index.js

// index.js
//在page外面定义一个变量存储用户在输入框输入的时间(用于动态赋值时间参数)
let time=''
Page({//获取用户openidgetOpenid(){//调用云函数wx.cloud.callFunction({//云函数的名字name:"getopenid"}).then(res=>{console.log("获取openid成功",res)}).catch(res=>{console.log("获取openid失败",res)})},//获取用户授权shouquan(){wx.requestSubscribeMessage({//模板id,可以有多个模板参数(数组形式)tmplIds: ['XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'], //自己的模板idsuccess(res){console.log('授权成功',res)},fail(res){console.log('授权失败',res)}})},//使用input标签对模板参数动态赋值,这里以time参数为例//获取用户输入的时间getTime(event){//赋值给上面定义的变量time=event.detail.value//获取到在input里面输入的内容console.log(time)},//发送消息给单个用户sendOne(){//如果input里面输入为空,给出提示if(time==null||time==''){wx.showToast({icon:"none",title: '请输入时间',})//为空的话退出函数return}//调用编辑好的sendMsg1云函数wx.cloud.callFunction({//云函数的名字name:"sendMsg1",//传入openiddata:{//把第一步获取到的openid粘过来openid:"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",    //获取到的openidstartTime:time}}).then(res=>{console.log("发送单条消息成功",res)}).catch(res=>{console.log("发送单条消息失败",res)})}
})

云函数getopenid——index.js

// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境// 云函数入口函数
exports.main = async (event, context) => {const wxContext = cloud.getWXContext()return {event,openid: wxContext.OPENID,appid: wxContext.APPID,unionid: wxContext.UNIONID,}
}

云函数sendMsg1——index.js

// 云函数入口文件
const cloud = require('wx-server-sdk')cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境// 云函数入口函数
exports.main = async (event, context) => {try{//发送订阅消息给用户const result = await cloud.openapi.subscribeMessage.send({touser:event.openid,//要跳转到哪个页面page:"pages/index/index",data:{    //配置模板里的参数phrase1:{value:'不通过'},thing2:{value:'胡乱拆迁'},date3:{   //设置动态模板参数的赋值value:event.startTime},thing5:{value:'不符合当地法规'}},//模板idtemplateId:'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' //写入自己的模板id})console.log(result.errCode)return result.errCode   //注意:必须返回result.errCode!!!否则虽然发送了但控制台会报错}catch(err){console.log(err)return err}
}

注意:对云函数编辑完一定要记得上传并部署!!!(每次都是)

真机调试效果

选择总是保持以上选择,不在询问的话,那么每次点击授权按钮的时候就会自动授权成功,不用再弹出授权选择的弹窗了。

【微信小程序系列】微信小程序简单的实现发送订阅信息相关推荐

  1. 【微信小程序系列】小程序简单连接后端数据库完整示例(附免费下载的源码)(Servlet)

    [微信小程序系列]小程序简单连接后端数据库完整示例(附免费下载的源码)(Servlet) 登录页面 login.wxml <view class="page">< ...

  2. HDU 4521 小明系列问题——小明序列 LIS+动态规划

    HDU 4521小明系列问题--小明序列 Time Limit:1000MS    Memory Limit:32768KB    64bit IO Format:%I64d & %I64u ...

  3. 小明系列问题――小明序列(LIS)

    小明系列问题――小明序列 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  4. 联想小新系列打印机卡纸问题简单处理

    联想小新系列打印机-进纸口卡纸 1.打开上盖,取出鼓粉组件: 2.合上上盖,小心地拉出卡在进纸托盘的纸,注意:不要撕坏纸张: 3.取出卡纸后重新装回鼓粉组件,合上上盖. 联想小新系列打印机-出纸口卡纸 ...

  5. 微信小程序系列2——小程序页面渲染和逻辑的关系

    前言   小程序是基于双线程模型的,在这个模型中,小程序的逻辑层与渲染层分开在不同的线程运行,这跟传统的Web 单线程模型有很大的不同,使得小程序架构上多了一些复杂度,也多了一些限制,同时具备渲染快. ...

  6. 实战小技巧系列(4):WinForm简单步骤制作

    进行类似于上一步,下一步的操作,是比较常见的,在WebAppliction中自从2.0发布以后到是已经有类似控件可以操作了,不知道为什么在Winform中好象没有该控件(我没有确认过,不知道是否真的没 ...

  7. hdu4521 小明系列的问题——小明序列(LIS变种 (段树+单点更新解决方案))

    链接: huangjing 题目:中文题目 思路: 1:这个题目假设去掉那个距离大于d的条件,那么必定是一个普通的LIS.可是加上那个条件后就变得复杂了.我用的线段树的解法. . .就是採用延迟更新的 ...

  8. 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)

    [微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...

  9. 【微信小程序系列:一】携带参数跳转半屏微信小程序 先 A->B 后 B ->A

    一.前言 hello,打算以后弄个微信小程序的常用技巧的文章系列,这是第一篇~ 以后会持续更 二.概念 普通的小程序里跳转其它小程序大家都知道,用wx.navigateToMiniProgram,而跳 ...

最新文章

  1. 终于将SAP系统完全配置通过了
  2. 查看mysql库和表的大小(空间)
  3. SQL Server报错:选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中...
  4. Spring事务隔离级别,事务传播行为
  5. yarn ngc使用练习
  6. const int *p说明不能修改_随时随地学习C语言之6—const修饰的变量真的不能修改吗?...
  7. 代码阅读软件kscope源码安装指导
  8. iview“官方“实现的右键菜单
  9. c语言通讯录程序设计个人感言,C语言学习感悟(1)
  10. 语音信号的LPC特征提取
  11. bat脚本变量赋值输出时提示”ECHO 处于关闭状态“
  12. 284、超详细的光纤熔纤、盘纤教程,值得收藏
  13. 多项式函数在某一点处的泰勒展开
  14. Linux 中Mysql出现‘> 如何退出?
  15. SpringBoot核心技术
  16. 蚂蚁森林师生执念种上万棵树
  17. 用什么软件工具可以一键添加马赛克同时虚化边框背景呢?
  18. 快手2019校招笔试题
  19. STEP 7-MicroWIN SMART软件在打开时报错“软件停止”以及界面显示“???”的解决办法
  20. 游戏建模初学者必看的游戏人物模型贴图制作方法及制作小技巧

热门文章

  1. 加湿器辉芒IC,加湿器单片机,辉芒FLASH芯片FT60F011ASOP08
  2. 数理方程及MATLAB解算学习笔记
  3. java 给qq邮箱发邮件_Java使用QQ邮箱给其他邮箱发邮件
  4. ESP32-CAM处理多工-使用计时器 - uPython
  5. 吾爱破解crackme 033 034
  6. “神笔马良”不再是神话!看大触如何用 VR 作画
  7. 为什么PCB上的单端阻抗控制50欧姆?
  8. 填空题, 2017, 省赛 迷宫
  9. LINX命令压缩和归档
  10. 信用卡成功下卡是什么意思?