小程序云开发之消息推送功能

小程序云开发之消息推送功能(图文)

一:新建项目

C:\Users\87593\AppData\Roaming\Typora\typora-user-images\image-20200409172243609.png

APPID获取方法:1、在微信公众平台上注册账号,选择小程序(也可以从服务号注册,前提你有一个服务号)注册后登录,登录时微信扫码验证一下

2、填写小程序信息,注意服务类目,有的特殊行业需要证书、认证之类(医疗、房地产等),选择不需要认证的类目,依次填写信息

3、提交后回到首页,选择设置-开发设置-复制AppID(小程序ID)

二:删除冗余文件

新建文件后的页面,云开发标志可点击,文件夹中生成一个云文件

在这里插入图片描述

删除系统配置的文件:①删除云文件夹中的四个文件②删除components中的文件夹③删除images中的图片④删除pages中除index外所有文件⑤index文件夹中清空css样式,wxml,index.js中留一个page({})防止报错⑥style文件中样式,除了page都可删掉⑦app.json ,pages中除了 "pages/index/index"都删掉⑧app.wxss内样式都可删掉

注:上述繁琐无聊的操作,是为了更清楚云开发实现的流程,及依赖的文件,在以后的开发中方便套用此模板

三:新建云文件

在这里插入图片描述

四:安装依赖

①安装node.jsnpm

node.js 下载地址
https://nodejs.org/en/

安装node.js时会同时安装npm

测试安装是否成功
安装完成后打开cmd:
输入node -v 来测试 node.js
输入npm -v 来测试 npm

②安装wx-server-sdk依赖

在cmd中首先通过cd 云函数路径的命令,定位到云函数目录,这里要定位到某个具体的云函数文件夹内

再执行npm install --save wx-server-sdk命令,安装wx-server-sdk依赖。对于每一个你创建云函数都要安装该依赖。 成功安装依赖后,相应的云函数文件夹将生成一个package-lock.json文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

③上传云函数

在相应的云函数文件夹上右键,选择“上传并部署:所有文件”。

左上角出现以下标志即上传成功
在这里插入图片描述
在这里插入图片描述

五:添加常量

官网https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/constant/constant.html#%E7%A4%BA%E4%BE%8B

在获取openid中添加以下代码

cloud.init: 设置 API 默认环境等于当前所在环境 (不理解就照着写)
在这里插入图片描述

六:获取模板ID

获取方法:

登录小程序微信公众平台→ 点击左侧边栏功能中的订阅消息→开通订阅消息功能→ 公共模板库→一次性订阅添加→ 选用需要的推送模板可获取对应的推送模板ID,如图:
在这里插入图片描述

七:请求用户授权

订阅消息,需要用户授权,所以需要做一个授权验证,具体步骤:

需要用到wx.requestSubscribeMessage这个方法,来获取用户的授权。

1.编写index.wxml代码
在这里插入图片描述

2,编写index.js代码,实现点击获取授权
在这里插入图片描述

3.正常情况下弹出授权提醒点击就可以授权成功,如果没有,看下你代码是不是写错了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

八:创建推送消息文件

官方文档: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html

在getopenid下添加一个sendMsg文件,用于获取用户的openid,并推送消息,具体操作与getopenid相同,修改代码如下 (记住要右击文件夹,点击上传并同步所有文件)
在这里插入图片描述

20200409194649824
在这里插入图片描述

九:云开发获取用户的openid并推送消息

在这里插入图片描述
在这里插入图片描述

十:真机调试结果

在这里插入图片描述

红框内表示授权成功,并推送成功

在这里插入图片描述

如果授权成功,推送消息成功,但未接收到服务通知,则:
在这里插入图片描述

十一:报错情况可查看下图找原因

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

openid为undefined的情况请查看这几处是否写错了:

在这里插入图片描述
在这里插入图片描述

本人开发中遇到bug参考过的blogs,小程序云函数调用失败解决方案:https://www.jianshu.com/p/738d285ad021

附:如开发中想实现一个按钮获取权限后推送消息,可参考下图

在这里插入图片描述
在这里插入图片描述

不知是否有帮助,欢迎留言交流