[猫头虎分享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'], // 替换为你的订阅消息模板ID
      success(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_token
  axios.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天的微信小程序基础入门教程。如果你有任何疑问,欢迎关注并留言在我的公众号猫头虎技术团队。📩


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文《Visual Point Cloud Forecasting enables Scalable Autonomous Driving》详细解析

论文《Visual Point Cloud Forecasting enables Scalable Autonomous Driving》详细解析 摘要 该论文提出了一种新的预训练任务,称为“视觉点云预测”(Visual Point Cloud Forecasting),从历史视觉输入中预测未来的点云。论文介…

大模型部署推理应用技术浅析

大模型完成预训练后不是就万事大吉了,离推理应用还有很大距离,需要经过微调、部署等一系列工程化工作。尤其是在2B的行业大模型应用中,为解决大模型的幻觉、时效性和推理成本问题,需要建立单一模型之上的体系。模型部署中的技术大…

CyberLink ColorDirector Ultra v12 解锁版安装教程 (视频后期调色软件)

前言 CyberLink ColorDirector Ultra 是一款视频后期调色处理软件,可以给视频进行专业色彩调整,让视频看起来焕然一新。它支持的格式视频非常多,流行的格式全都可以添加到里面进行调色处理,主要是使用关键帧控件进行颜色替换&…

Mac在docker可视化界面上安装主流数据库

前言 篇幅有点长,大家可以打开目录快速跳转到想要的数据库即可! 虽然说用命令行会显得我们更加专业一些,但对于我英语水平不怎么好的人来说,毕竟命令多又长,还不好记。我个人是喜欢复杂问题简单化,踩了很多…

Balabolka-一款完全免费的电子书朗读及文本转语音软件

下载地址:Balabolka Balabolka能够进行简单的文本转语音任务,支持各种语言包,该软件可以读取剪贴板的内容, 可以查看AZW,CHM,DjVu,DOC,EPUB,FB2,LIT&#xff…

想知道股指期货和期权有什么不同吗?

市场上目前有中金所的沪深300ETF,中证500和中证1000股指期货,期权市场有上证50ETF,沪深300etf和中证500ETF期权,股指期货和期权在买卖双方的权利义务、风险收益特征、保证金制度、上市合约数量等方面均有较大区别,下文…

操作系统真象还原:一些你可能正感到迷惑的问题

第0章-一些你可能正感到迷惑的问题 这是我看操作系统真象还原这本书的一些记录: 4 软件是如何访问硬件的 硬件在输入输出上大体分为串行和并行,相应的接口也就是串行接口和并行接口。串行硬件通过串行接口与 CPU 通信,反过来也是&#xff…

连锁收银系统支持带结算功能

连锁实体店的收银系统需要支持结算功能,以适应连锁运营效率和提升连锁管理的水平。商淘云连锁收银系统与您一起分享连锁收银系统需支持结算功能的三大必要点。大家点赞收藏,以免划走后找不到了。 一是,连锁模式的运营比较复杂,有加…

2021CSP-J普及组复赛-第一题:分糖果

2021CSP-J普及组复赛 第一题: 题目: 输入: 7 16 23输出: 6思路: 这是一个简单的思考题,没有用到重要的算法 ①简单的思路即暴力方法就是利用for循环从L 到 R 遍历求出其中最大的奖励值,由于R…

2024最新 Jenkins + Docker实战教程(七)- Jenkins实现远程传输和自动部署

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

论文阅读:Correcting Motion Distortion for LIDAR HD-Map Localization

目录 概要 Motivation 整体架构流程 技术细节 小结 论文地址:http://arxiv.org/pdf/2308.13694.pdf 代码地址:https://github.com/mcdermatt/VICET 概要 激光雷达的畸变矫正是一个非常重要的工作。由于扫描式激光雷达传感器需要有限的时间来创建…

ROS运行文件(LaunchFile)和参数(Parameter)

本文主要介绍ROS的Launch File和Parameter概念,通过Launch File启动单个或多个节点,并通过Parameter配置启动参数。 更多内容,访问专栏目录获取实时更新。 当你的应用中包含了很多工作包,每个工作包了又包含了多个节点时&#xff…

测试基础07:测试工作流程规范、进度同步与把控

课程大纲 1、迭代测试流程 2、测试流程 2.1、测试用例评审 目的:对齐产品需求理解,完善、优化测试场景。 参与方:项目、产品、开发、测试。 用例内容:冒烟用例(主流程) 功能用例。 2.2、冒烟测试 提测…

JAVA类与方法·易错题分析

分析一下作业中关于类与方法写错或者易错的题。 N o . 1 No.1 No.1 下面程序的执行结果是______。 public class Test7 {public static void main(String[] args){new B().display();} } class A{public void draw() {System.out.print("Draw A.");}public void di…

PHPSTOM配置Laradock,xdebug,phpunit

原理图: 片面理解: phpstorm启用一个9000端口,这个端口用来接收到信息后,启用xdebug功能。服务器端(docker), 当客户端访问laravel项目域名后, 并读取xdebug.ini的配置, 把调试的请求数据, 向配置里面的端口发送消息, 配置里面的端…

这个橙子真的香!老司机徒手把玩香橙派Kunpeng Pro事后回忆录

说!你是哪个门派? 香橙,芸香科柑橘属小乔木。枝通常有粗长刺,新梢及嫩叶柄常被疏短毛。叶厚纸质,翼叶倒卵状椭圆形,顶部圆或钝。。。 咦?小李?我们不是搞IT的嘛,怎么会有…

Photoshop粘贴 lorem-ipsum 占位符文本

Photoshop在使用文字工具的时候,点击画布会自动出现一段英文“Lorem Ipsum”,这是占位文本,除了响应速度慢外,目前我也没发现它有什么太大意义。 那么要如何操作才能取消占位文本的填写呢?在菜单栏点 编辑-首选项-文字…

list常用接口模拟实现

文章目录 一、模拟list类的框架二、函数接口实现1、迭代器接口2、常用删除、插入接口3、常用其他的一些函数接口4、默认成员函数 一、模拟list类的框架 1、使用带哨兵的双向链表实现。 2、链表结点&#xff1a; // List的结点类 template<class T> struct ListNode {Li…

【YashanDB知识库】OCI驱动类问题定位方法

【标题】OCI驱动类问题定位方法 【需求分类】故障分析 【关键字】OCI 【需求描述】由于我们的OCI接口目前尚不完善&#xff0c;经常会遇见OCI接口能力不足导致应用功能无法运行的问题&#xff0c;需要定位手段确定底层是哪个接口报错 【需求原因分析】方便一线数据库管理员…