uniapp 写H5页面的时候,实现公众号(服务号)订阅通知的消息推送,使用微信JS-SDK,中的wx-open-subscribe

25 篇文章 2 订阅
17 篇文章 0 订阅

先看效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
首先我是uniapp写的H5页面,挂在别人的小程序上面

不废话,说一下步骤:

第一步:安装微信SDK
第二步:配置SDK环境
第三步:使用wx-open-subscribe(这是重点)
这里头有后端开发人员的支持
来,上代码:

第一步:安装SDK

npm install jweixin-module

使用的时候:

// 先引入
//#ifdef H5
var jweixin = require("jweixin-module");
// #endif

第二步、配置环境 和 第三步


//创建一个方法
    /**
     * 配置信息--微信SDK
     * */
    getCofig() {
      const url = location.href.split("#")[0];
        uni.request({
        url: "/nj-fpyj/wechat/getJSConfig", //后端提供的接口
        method: "post",
        data: {
          url: url,
        },
        success: (res) => {
          // alert(JSON.stringify(res) + "请求API");
          if (res) {
            jweixin.config({
              debug: true, // 开启调试模式,
              appId: res.data.result.appId, // 必填,企业号的唯一标识
              timestamp: res.data.result.timestamp, // 必填,生成签名的时间戳
              nonceStr: res.data.result.nonceStr, // 必填,生成签名的随机串
              signature: res.data.result.signature, // 必填,签名
              jsApiList: ['wx-open-subscribe',"scanQRCode"], // 必填,需使用的JS接口列表
              openTagList: ['wx-open-subscribe']//非必填,但是要使用wx-open-subscribe就写上
            });
            jweixin.ready(() => {
              console.log("配置完成,扫码前准备完成");
              alert(res.errMsg + "配置完成,扫码前准备完成");
              // wx-open-subscribe 原生绑定点击事件
              this.$nextTick(() => {
                const btn = this.$refs.subscribeBtn;
                btn.addEventListener('success', ({
                  detail
                }) => {
                  // this.content2 = JSON.parse(detail.subscribeDetails)
                  alert('授权成功'+ JSON.parse(detail.subscribeDetails))
                  //..........然后对接后端的接口,让后端推送消息就行
                });
                btn.addEventListener('error', (e) => {
                  alert('授权失败了,请重试')
                });
              })
            });
            jweixin.error(function (res) {
              //wx.config配置错误,会弹出窗口哪里错误,然后根据微信文档查询即可。
              console.log("出错了:" + res.errMsg);
              alert(res.errMsg + "配置失败");
            });
          } else {
            console.log("获取配置信息返回为空");
            alert("获取配置信息返回为空")
          }
        },
        fail: (error) => {
          console.log(error, "请求获取微信配置失败");
          alert(error, "调用接口失败")
        },
      });
    },

需要注意的是:

1、一定要在公众号后台配置业务域名和js域名和网页域名

在这里插入图片描述

2、一定要在该域名的环境下进行测试(我是打包项目部署到该域名的服务器下)

3、 一定要真机调试,不能是电脑的微信客户端或者开发者工具,要不然出现的问题千奇百怪

好的,关于微信分享的问题,我可以给你一些指导。首先,你需要在你的 HTML5 页面引入微信 JS-SDK,然后在页面加载完成后初始化 JS-SDK。接着,你需要通过 JS-SDK 提供的接口来配置分享的内容和参数,最后调用分享接口即可完成分享。 具体步骤如下: 1. 引入微信 JS-SDK 在 HTML 页面引入微信 JS-SDK,如下所示: ```html <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 2. 初始化 JS-SDK页面加载完成后,初始化 JS-SDK。你需要先通过微信公众平台获取到你的 AppID 和 AppSecret,然后使用这些信息初始化 JS-SDK。示例代码如下: ```javascript wx.config({ debug: false, appId: 'your app id', timestamp: 'your timestamp', nonceStr: 'your nonceStr', signature: 'your signature', jsApiList: [ 'onMenuShareAppMessage', 'onMenuShareTimeline', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone' ] }); ``` 其,`appId`、`timestamp`、`nonceStr` 和 `signature` 分别是通过微信公众平台生成的,用于验证你的身份和权限的参数。`jsApiList` 是你需要使用JS-SDK 接口列表。 3. 配置分享内容和参数 在初始化 JS-SDK 后,你需要通过 JS-SDK 提供的接口来配置分享的内容和参数。示例代码如下: ```javascript wx.ready(function() { wx.onMenuShareAppMessage({ title: '分享标题', desc: '分享描述', link: '分享链接', imgUrl: '分享缩略图', trigger: function(res) {}, success: function(res) {}, cancel: function(res) {}, fail: function(res) {} }); wx.onMenuShareTimeline({ title: '分享标题', link: '分享链接', imgUrl: '分享缩略图', trigger: function(res) {}, success: function(res) {}, cancel: function(res) {}, fail: function(res) {} }); }); ``` 其,`onMenuShareAppMessage` 和 `onMenuShareTimeline` 分别是分享给好友和分享到朋友圈的接口。你需要提供分享的标题、描述、链接和缩略图等参数。 4. 调用分享接口 最后,在页面调用分享接口即可完成分享。示例代码如下: ```javascript wx.ready(function() { wx.onMenuShareAppMessage({ title: '分享标题', desc: '分享描述', link: '分享链接', imgUrl: '分享缩略图', trigger: function(res) {}, success: function(res) {}, cancel: function(res) {}, fail: function(res) {} }); wx.onMenuShareTimeline({ title: '分享标题', link: '分享链接', imgUrl: '分享缩略图', trigger: function(res) {}, success: function(res) {}, cancel: function(res) {}, fail: function(res) {} }); // 在需要分享的地方调用 shareAppMessage 和 shareTimeline 接口 // 示例代码如下 document.querySelector('#share-btn').addEventListener('click', function() { wx.shareAppMessage({ title: '分享标题', desc: '分享描述', link: '分享链接', imgUrl: '分享缩略图', trigger: function(res) {}, success: function(res) {}, cancel: function(res) {}, fail: function(res) {} }); }); document.querySelector('#share-timeline-btn').addEventListener('click', function() { wx.shareTimeline({ title: '分享标题', link: '分享链接', imgUrl: '分享缩略图', trigger: function(res) {}, success: function(res) {}, cancel: function(res) {}, fail: function(res) {} }); }); }); ``` 这样就完成了微信分享功能的实现。需要注意的是,由于微信的安全机制,分享的链接必须是在微信公众平台配置过的域名,否则可能无法正常分享。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值