uniapp 调用wx-open-subscribe实现微信订阅

前提

我们在uniapp写h5时,对微信进行一系列的操作需要依赖 “jweixin-module”,所以首先我们要安装这个库

npm install jweixin-module

 然后新一个配置文件js,然后引入jweixin-module,然后在配置文件里添加引入wx-open-subscribe

import "jweixin-module";
import * as wechatApi from "@/api/wechat-login.js";

export default function (wxData) {
	return new Promise(async function (resolve, reject) {
    const isConfigured = await wechatApi.checkIsAuthorized();

    if (!isConfigured.ok) {
      return;
    }

    const config = await wechatApi.getWechatJsSDKConf({ url: window.location.href });

    uni.setStorageSync('appId', config.appId)

		window.wx.config({
				debug: false,
				...config,
				jsApiList: [
				'wx-open-subscribe',
				'launchAppLication',
				"updateAppMessageShareData",
				"updateTimelineShareData",
				"onMenuShareWeibo",
				],
				openTagList: [
				'wx-open-subscribe',
		]
		});

		window.wx.ready(function () {
			// 微信/QQ好友分享
			wx.updateAppMessageShareData(wxData);

			// 微信朋友圈分享
			wx.updateTimelineShareData(wxData);

			// 分享腾讯微博
			wx.onMenuShareWeibo(wxData);

			resolve(true)
		});



		window.wx.error((res) => {
			console.log("error", res);
			reject(false)
		});
	})
}

 如果你想看有没有引入成功,可以使用微信开发者工具打开,在控制台查看

然后在需要的页面引用 

import shareApi from '@/hooks/shareApi';

shareApi({
  title: '分享标题',
  desc: '分享简介',
  imgUrl: formatUrl(props.goods.cover), // 分享的图片
  link: window.location.href// 分享的链接
}).then((res) => {
  console.log(res)
})

具体实现代码

html代码如下:

<wx-open-subscribe style="width: 146px;" :template="subscribeInf" id="subscribe-btn"
          @success="onSubscribeSuccess" @error="onSubscribeError"  class=" flex flex-col items-center ">
          <component is="script" type="text/wxtag-template" slot="style">
            <component is="style">
              .subscribe-btn {
              color: #fff;
              background-color: #FF4A02;
              width: 100% !important;
              border-top-right-radius: 8px;
              border-bottom-right-radius: 8px;
              display: flex;
              flex-direction: column;
              justify-content: space-around;
              align-items: center;
              font-size: 14px;
              height: 36px;
              padding: 2px 0;
              border: none;
              font-weight: 500;
              font-family: PingFang SC, system-ui, -apple-system, BlinkMacSystemFont, Helvetica Neue, Hiragino Sans GB,
              Microsoft YaHei UI, Microsoft YaHei, Arial, sans-serif;
              }
              .text-10 {
              font-size: 12px;
              transform: scale(0.83333);
              transform-origin: 0 0;
              font-weight: 400;
              }
            </component>
          </component>
          <component is="script" type="text/wxtag-template">
            <span :class="active.status ? 'bg-FF4B02' : 'bg-C9CDD4'"
              class="subscribe-btn pay-foot-right-last flex flex-col items-center justify-around font-500 w-full">
              立即开团
              <span class="text-10 font-400">
                ¥20
              </span>
            </span>
          </component>
</wx-open-subscribe>

javascript代码如下:

const reg = /accept/;

const onSubscribeSuccess = (e) => {
  console.log('订阅弹窗选择完毕');

    const subscribeDetails = e.detail.subscribeDetails;

    // 判断是否点击确定
   if (reg.test(subscribeDetails)) {
        conosle.log('点击了确定')
   }
}

const onSubscribeError = () => {
  console.log('出现错误');
}

//订阅消息的ID
const subscribeInf = ref('')

//将标识传给后端来获取订阅消息所需要的ID
const getwxID = async () => {
  const data = await getSubscribeInf({ keys: '订阅标识' })
  subscribeInf.value = data
}

注意

  • 要确定微信配置是正确的
  • 要确定微信订阅消息的ID是正确的

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值