目录

  • 概要
  • 实现示例
  • Tips
  • 关注我,不迷路

概要

关注微信公众号组件,官方提供了official-account,只有在固定的场景下才会显示,比如扫码进入的小程序才会显示。更多相关场景:开发能力/official-account。

公众号组件official-account,本身样式是固定的,也不支持修改样式。但是在做微信小程序的时候,有个需求就是把关注公众号的组件改成一个按钮,不要问为什么,因为有现成的别人家的小程序就可以点击一个按钮去关注公众号。于是在网上搜了一些案例,发现没一个靠谱的。不过后来,被我攻破了这个难关。那么我就把这个关注公众号组件自定义样式方法分享出来。

下面的实现案例,使用了uniapp打包,仅做参考。如需在原生微信小程序中使用,则需要读懂代码,在此基础上依葫芦画瓢。

实现示例

变身前:

变身后:

实现示例:

<template><view class="weixin-official-account" v-if="show" :style="{'bottom':`${bottom}rpx`,'opacity':opacity}"><text class="txt">关注微信公众号,海量资料任你查阅!</text><button type="default" class="btn btn-official"> 立即关注<official-account class="official-account" id="official_account"></official-account></button><icon class="iconfont icon-close" @click="close"></icon></view>
</template>
<script>export default {props: {bottom: {type: [Number, String],default: 100},isFollow: {// 是否已经关注过公众号type: [Boolean],default: false}},data() {return {show: true,opacity: 0,max: 3}},mounted() {setTimeout(() => {this.init();}, 800)},methods: {init() {let that = this;const query = uni.createSelectorQuery().in(this);query.select('#official_account').boundingClientRect(data => {if (data.width && data.height) {that.check();} else {that.show = false;}}).exec();},async check() {try {const num = uni.getStorageSync('CLOSE_OFFICIAL_ACCOUNT');if (+num >= this.max) {this.show = false;return false;}this.show = !this.isFollow;if (this.show) this.opacity = 1;} catch (e) {this.show = false;}},close() {this.show = false;const num = uni.getStorageSync('CLOSE_OFFICIAL_ACCOUNT') ? +uni.getStorageSync('CLOSE_OFFICIAL_ACCOUNT') + 1 : 1;uni.setStorageSync('CLOSE_OFFICIAL_ACCOUNT', num);}}}
</script>
<style scoped lang="scss">.weixin-official-account {position: fixed;z-index: 20211208;left: 50%;transform: translateX(-50%);display: flex;align-items: center;justify-content: space-between;width: 682rpx;height: 68rpx;padding: 0 10rpx 0 30rpx;background: rgba(0, 0, 0, .6);border-radius: 6rpx;.txt {font-size: 24rpx;color: #fff;}.btn {position: relative;width: 56px;height: 20px;line-height: 20px;padding: 0;background: #2878FF;border-radius: 10px;overflow: hidden;text-align: center;font-size: 20rpx;color: #fff;.official-account {position: absolute;z-index: 20211209;right: -14px;top: -40px;opacity: 0;}}.icon-close {display: flex;align-items: center;justify-content: center;width: 50rpx;height: 68rpx;font-size: 22rpx;color: #fff;}}@font-face {font-family: 'iconfont';src: url(data:font/truetype;charset=utf-8;base64,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) format('truetype');}.iconfont {font-family: "iconfont" !important;font-size: 32rpx;font-style: normal;font-weight: normal;vertical-align: middle;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;}.icon-close:before {content: "\e670";}
</style>

Tips

  • 此案例可以直接当成一个组件使用,需要改样式及文字,可以自行修改,这里展示的仅做参考,最重要的是思路。
  • isFollow表示是否关注过公众号,我处理的思路是通过后端接口判断是否关注过公众号,关注过就不显示该组件了,仅做参考。
  • max 表示最多点几次关闭按钮,就不再显示该组件了,仅做参考。
  • 主要思路:先让组件显示,但是透明度为0=》然后判断组件的宽高,有宽高说明该场景可以显示公众号组件=》通过是否关注过公众号,判断是否显示=》最终的目的就是显示自己定义的按钮,在按钮上面其实是覆盖了公众号组件,位置刚好调整在关注的按钮上面,透明度为0,所以看到的就是自己的按钮,点击的其实还是组件上的按钮。

关注我,不迷路

小伙伴,用你可爱的小手,点个赞,关注我了解更多知识!!!

如果任何疑问的可以在评论区留言或者私聊。

也可以扫下面二维码加我wx,备注‘地区-名字-技术类型’,我会拉进我的微信技术分享群。注意:必须备注清楚哈。

也可以加QQ群交流:568984539,加群备注‘地区-名字-技术类型’。

更多前端、uniapp、nodejs等相关知识可关注我个人博客:https://blog.csdn.net/qq_42961150?spm=1011.2124.3001.5343

微信小程序:关注公众号组件自定义样式相关推荐

  1. 微信小程序关注公众号模板显示隐藏问题

    微信小程序关注公众号模板显示隐藏问题 最近做了一个微信小程序内跳转关注公众号的需求,本来按照API的写法是可以直接搞定的.但是产品需求是要点击按钮之后,再弹出关注公众号组件,然后点击关闭按钮之后要关掉 ...

  2. 一图了解App跳转微信小程序关注公众号,推送消息

    一图了解App跳转微信小程序关注公众号,推送消息:

  3. 微信小程序关注公众号

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 基础库 2.3.0 开始新出了一个组件,可以实现从小程序端直接关注公众号的组件,名为:official-acc ...

  4. 小程序关注公众号组件

    小程序关联公众号组件 使用方法 使用组件前,需前往小程序后台,在"设置"->"接口设置"->"公众号关注组件"中设置要展示的公众 ...

  5. 小程序关注公众号组件<official-account ></official-account>的使用方法

    1.首先在微信小程序后台设置,管理设置,要管理同一主体的公众号. 2.接下来,微信小程序后台设置 关注公众号,绑定要关注的公众号.设置的公众号需与小程序主体一致. 3.最低版本:2.19.0起开发版小 ...

  6. 小程序关注公众号组件 official-account

    要注意: 1.小程序必须关注公众号. 2.公众号也的关联小程序. 3.小程序和关注必须是同主体或者关联主体. 4.基础库2.7.3版本以上. 5.设置场景值,(在对应的场景值下才会显示出来). 显示出 ...

  7. 微信小程序与公众号区别PHP,微信小程序和微信公众号的区别是什么?

    微信小程序和微信公众号的区别是什么? 2019-08-17 09:10 微信公众号和小程序都是基于微信平台来使用的,而微信自带的十几亿流量也是导流到小程序和公众号上的.越来越多的商家都在运营微信小程序 ...

  8. 服务器和微信公众号的区别,微信小程序和公众号的区别,看这三点就懂了

    原标题:微信小程序和公众号的区别,看这三点就懂了 第一点就是定位不同,小程序主要用来面向产品和服务,而公众号则是用于销售和传递信息.小程序在功能上和公众号有本质的区别(不支持关注,没有粉丝体系.消息推 ...

  9. 小程序关注公众号的方法总结

    因为很多小程序都想让小程序关注公众号,如何实现最优雅呢,作为一个搞技术的,经过我的研究,发现都是通过客服来显示的,小程序里,点客服,提示关注公众号,比如制作器里这个功能,能够自动引导关注公众号,图文体 ...

  10. PHP开发B2C商城 微信小程序商城系统源码+数据库,轻量级前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP

    项目介绍 一款轻量级.高性能.前后端分离的电商系统,支持微信小程序 + H5+ 公众号 + APP,前后端源码完全开源,看见及所得,完美支持二次开发,可学习可商用,让您快速搭建个性化独立商城. 完整代 ...

最新文章

  1. 博客园Markdown模式的MATLAB代码高亮方案
  2. 微软职位内部推荐-Senior BSP Engineer
  3. 【Python数据分析】四级成绩分布 -matplotlib,xlrd 应用
  4. java中class.forname连接mysql数据库_数据库链接与 Class.forName()用法详解
  5. 20145122《Java面向对象程序设计》实验二实验报告
  6. [导入]Spring Web Flow
  7. 分布科技荣登海南省实施区块链应用示范揭榜工程名单
  8. 原力值13872,不知道排名多少
  9. AMOS分析技术:结构方程模型的拟合度评价指标
  10. 如何在计算机设置鼠标宏,游戏鼠标宏设置是什么?怎么设置游戏鼠标宏?
  11. Matlab图例设置
  12. windows7最简单最快速解决“此windows副本不是正版”(“This copy of Windows is not genuine”)方法
  13. 使用you-get调用本地播放器观看在线视频
  14. RFID 负载调制和反向散射调制
  15. macOS 环境下 Go 安装配置
  16. 如何判断您是否拥有32位或64位版本的Google Chrome浏览器
  17. 大数相乘 - 浮点数
  18. Linux命令行使用总结
  19. java去除水印_Java添加、删除Word水印
  20. python3 :习题40、习题41

热门文章

  1. 置信区间(confidence interval)
  2. 作业5:链家.csv
  3. 避免内容失去焦点_痛楚难以避免,而磨难可以选择
  4. k8s deployment Strategy 更新策略
  5. 斐讯音箱控制扫地机器人_斐讯大能X3扫地机器人首批测试,这回真没花一分钱!...
  6. 进行淘宝商品比价的定向爬虫
  7. 腾达无线路由器连不上服务器,腾达无线路由器中继失败怎么办?
  8. uniapp中text-indent不起作用,uniapp首行缩进不管用如何解决?
  9. 小程序怎么接入机器人客服系统
  10. 短视频矩阵系统H5形式视频分享如何开发?