[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送

[猫头虎分享21天微信小程序基础入门教程]第21天:小程序的社交分享与消息推送
请添加图片描述


第21天:小程序的社交分享与消息推送 📲

自我介绍

大家好,我是猫头虎,一名全栈软件工程师。今天我们继续微信小程序的学习,重点了解如何实现社交分享与消息推送功能。这些功能可以帮助你提高小程序的用户互动和活跃度。🚀

社交分享

微信小程序提供了丰富的分享功能,可以让用户将内容分享到微信好友和朋友圈。

一、实现分享功能

1. 配置分享菜单

在小程序的 app.json 文件中配置分享菜单:

{"window": {"navigationBarTitleText": "小程序","navigationStyle": "custom"},"tabBar": {"list": [{"pagePath": "pages/index/index","text": "首页"}]}
}
2. 使用 onShareAppMessage 实现分享

在页面的 js 文件中实现分享逻辑:

Page({onShareAppMessage() {return {title: '分享标题',path: '/pages/index/index',imageUrl: '/images/share-image.png', // 分享图片success(res) {console.log('分享成功:', res);},fail(err) {console.error('分享失败:', err);}};}
});

二、自定义分享内容

1. 动态生成分享内容

根据页面内容动态生成分享标题和路径:

Page({data: {articleTitle: '文章标题'},onShareAppMessage() {return {title: `快来阅读这篇文章: ${this.data.articleTitle}`,path: `/pages/article/article?id=123`,imageUrl: '/images/share-image.png',success(res) {console.log('分享成功:', res);},fail(err) {console.error('分享失败:', err);}};}
});

消息推送

微信小程序提供了订阅消息功能,可以向用户推送消息。

三、实现订阅消息

1. 配置订阅消息模板

在微信公众平台的“订阅消息”功能中创建并配置消息模板。

2. 请求订阅消息权限

在页面的 js 文件中请求用户订阅消息权限:

Page({requestSubscribeMessage() {wx.requestSubscribeMessage({tmplIds: ['TEMPLATE_ID'], // 替换为你的订阅消息模板IDsuccess(res) {console.log('订阅成功:', res);if (res['TEMPLATE_ID'] === 'accept') {// 用户同意订阅消息wx.showToast({title: '订阅成功',icon: 'success'});}},fail(err) {console.error('订阅失败:', err);}});}
});
3. 发送订阅消息

在后端服务器上实现发送订阅消息的逻辑。以下是使用 Node.js 和 Express 的示例:

const express = require('express');
const axios = require('axios');
const app = express();app.post('/send-message', (req, res) => {const { openid, templateId, formId, data } = req.body;// 获取小程序的 access_tokenaxios.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=YOUR_APPID&secret=YOUR_SECRET`).then(response => {const accessToken = response.data.access_token;// 发送订阅消息return axios.post(`https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${accessToken}`, {touser: openid,template_id: templateId,page: 'pages/index/index',data: data});}).then(response => {res.json({ success: true, data: response.data });}).catch(error => {console.error('发送消息失败:', error);res.json({ success: false, error: error.message });});
});app.listen(3000, () => {console.log('Server running on port 3000');
});

小测试 🧪

  • 实现一个页面的分享功能,用户可以将该页面分享给微信好友。
  • 请求用户订阅消息权限,并发送一条测试消息到用户的微信。

今日学习总结 📚

概念详细内容
社交分享配置分享菜单,使用 onShareAppMessage 实现分享
自定义分享内容动态生成分享标题和路径
消息推送配置订阅消息模板,请求订阅消息权限,发送订阅消息

结语

通过今天的学习,你应该掌握了如何在小程序中实现社交分享与消息推送功能。这些技术可以帮助你提高小程序的用户互动和活跃度。感谢你跟随我完成了这21天的微信小程序基础入门教程。如果你有任何疑问,欢迎关注并留言在我的公众号猫头虎技术团队。📩


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/336237.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

154.找出出现至少三次的最长特殊字符串|(力扣)

代码解决 class Solution { public:int maximumLength(string s) {// 使用unordered_map来存储每个连续子串出现的次数unordered_map<string, int> mp;string key; // 存储当前的连续子串int ans -1; // 存储最终的答案&#xff0c;如果没有符合条件的子串&#xff0c…

【busybox记录】【shell指令】readlink

目录 内容来源&#xff1a; 【GUN】【readlink】指令介绍 【busybox】【readlink】指令介绍 【linux】【readlink】指令介绍 使用示例&#xff1a; 打印符号链接或规范文件名的值 - 默认输出 打印符号链接或规范文件名的值 - 打印规范文件的全路径 打印符号链接或规范文…

人脸识别——探索戴口罩对人脸识别算法的影响

1. 概述 人脸识别是一种机器学习技术&#xff0c;广泛应用于各种领域&#xff0c;包括出入境管制、电子设备安全登录、社区监控、学校考勤管理、工作场所考勤管理和刑事调查。然而&#xff0c;当 COVID-19 引发全球大流行时&#xff0c;戴口罩就成了日常生活中的必需品。广泛使…

Go微服务: Grpc服务注册在Consul的示例(非Go-Micro)

概述 现在&#xff0c;我们使用consul客户端的api来把GRPC服务实现注册到consul上&#xff0c;非Go-Micro的形式其实&#xff0c;consul官方提供了对应的接口调用来实现&#xff0c;golang中的consul/api包对其进行了封装我们使用consul/api来进行展示 目录结构 gitee.com/g…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数&#xff0c;strstr()的使用介绍和模拟实现。 模拟实现这个函数&#xff0c;可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力&#xff0c;有兴趣的话就请往下看吧。 strstr函数介绍 函数功能&#xff1a; strstr函…

Hololens 2 新建自定义按钮

官方链接地址 1、创建Cube 2、添加PressableButton脚本&#xff0c;并点击AddNearin… 3、把Cube拖入到MovingButtonVisuals变量中 4、点击NearInteractionTouchable组件&#xff08;这个组件是添加和上一个脚本绑定的&#xff0c;自动添加上来的&#xff09;上的Fix… 5、…

网络之再谈体系结构

大家都知道的是网络的体系结构&#xff0c;现代软件常用的体系结构无非是TCP/IP协议栈&#xff0c;OSI因为实现复杂并且效率没有TCP/IP协议栈好&#xff0c;所以不用OSI&#xff0c;但是&#xff0c;最近在复习网络知识的时候&#xff0c;发现了一些奇怪的地方&#xff0c;那就…

ubuntu系统开启ssh密码登录

文章目录 前言 一、确认否有ssh服务 二、修改/etc/ssh/sshd_config配置文件 三、重启ssh服务 总结 前言 安装好ubuntu系统后&#xff0c;默认是无法通过密码远程shell连接的&#xff0c;需要修改配置文件。 一、确认否有ssh服务 我这边使用的是ubuntu 22.04 LTS的系统&a…

Java设计模式-活动对象与访问者

活动对象 Java设计模式中&#xff0c;活动对象是指一个对象始终处于活动的状态&#xff0c;该对象包括一个线程安全的数据结构以及一个活跃的执行线程。 如上所示&#xff0c;ActiveCreature类的构造函数初始化一个线程安全的数据结构&#xff08;阻塞队列&#xff09;、初始化…

算法练习——字符串

一确定字符串是否包含唯一字符 1.1涉及知识点 c的输入输出语法 cin>>s; cout<<"NO"; 如何定义字符串 切记&#xff1a;在[]中必须加数字——字符串最大长度&#xff0c;不然编译不通过 char s[101]; 如何获取字符串长度 char s[101];cin>>s;i…

深度学习:手撕 RNN(2)-RNN 的常见模型架构

本文首次发表于知乎&#xff0c;欢迎关注作者。 上一篇文章我们介绍了一个基本的 RNN 模块。有了 这个 RNN 模块后&#xff0c;就像搭积木一样&#xff0c;以 RNN 为基本单元&#xff0c;根据不同的任务或者需求&#xff0c;可以构建不同的模型架构。本节介绍的所有结构&#…

conda修改环境名称后,无法安装包,显示no such file

1问题描述 原本创建环境时设置的名字不太合适&#xff0c;但是因为重新创建环境很麻烦&#xff0c;安装很多包。。所以想直接对包名进行修改&#xff0c;本人采用的方式是直接找到conda环境的文件目录&#xff0c;然后修改文件名&#xff0c;简单粗暴。确实修改成功了&#xf…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十三)- 微服务(3)

6. Eureka 和 Nacos 对比 共同点 : 都支持服务注册和服务拉取 都支持服务提供者心跳方式做健康检测 不同点 : 1.nacos支持服务端主动检测提供者状态&#xff0c;临时实例采用心跳模式&#xff0c;非临时实例采用主动检测模式 临时实例心跳不正常会被剔除&#xff0c;非临时实…

MySQL的安全性

给root用户设置密码 点击用户--下面三个账号双击--进行编辑 修改密码--修改完进行保存 关闭数据库后连接不上 重新编辑&#xff0c;设置密码 新建账号 填入信息--保存&#xff08;主机哪里要选择%&#xff09; 连接这个新的账号 点击连接--填写连接的名称&#xff0c;地址&…

安卓赤拳配音v1.0.2Ai配音神器+百位主播音色

Ai配音神器 本人自用版本&#xff01;超级稳定&#xff01;百位主播音色 登陆即可用 链接&#xff1a;https://pan.baidu.com/s/1WVsrYZqLaPAriHMMLMdPBg?pwdz9ru 提取码&#xff1a;z9ru

深度神经网络——什么是迁移学习?

1.概述 在练习机器学习时&#xff0c;训练模型可能需要很长时间。从头开始创建模型架构、训练模型&#xff0c;然后调整模型需要大量的时间和精力。训练机器学习模型的一种更有效的方法是使用已经定义的架构&#xff0c;可能具有已经计算出的权重。这是背后的主要思想 迁移学习…

从0开始带你成为Kafka消息中间件高手---第三讲

从0开始带你成为Kafka消息中间件高手—第三讲 实际上来说&#xff0c;每次leader接收到一条消息&#xff0c;都会更新自己的LEO&#xff0c;也就是log end offset&#xff0c;把最后一位offset 1&#xff0c;这个大家都能理解吧&#xff1f;接着各个follower会从leader请求同…

Facebook:连接世界,畅游社交之旅

作为全球最大的社交平台之一&#xff0c;Facebook不仅仅是一个网站&#xff0c;更是一个连接世界的桥梁&#xff0c;让人们可以轻松地与全球各地的朋友、家人和同事保持联系&#xff0c;分享生活、交流想法&#xff0c;畅游社交的无边界之旅。本文将带领读者探索Facebook的魅力…

php TP8 阿里云短信服务SDKV 2.0(跳大坑)

安装&#xff1a;composer require alibabacloud/dysmsapi-20170525 2.0.24 官方文档&#xff1a;短信服务_SDK中心-阿里云OpenAPI开发者门户 (aliyun.com) 特别注意&#xff1a;传入参数获得值形式 这样也不行 $sendSmsRequest new SendSmsRequest($addData); 还有一个大坑…

RFM模型-分析母婴类产品

1&#xff0c;场景描述 假设我们是某电商平台的数据分析师&#xff0c;负责分析母婴产品线的用户数据。母婴产品的购买行为具有一定的周期性和生命周期特征&#xff0c;如用户在不同怀孕阶段的需求不同&#xff0c;以及宝宝出生后的不同成长阶段需要不同的产品。 2&#xff0…