微信小程序下获取公众号openId

一、为什么我们需要在小程序下面获取公众号的openId呢?
微信公众号和微信小程序我们一般都会开发,有一种场景我们经常会遇到,公众号的消息推送以较成熟,我们希望把小程序那边的用户也同步到公众号这边,而且最好采用静默方式,所以我们有这种需求。

二、方案

从目前来讲,微信没有给我们提供可直接在小程序中调用公众号的接口,当然大家会想到union机制,当然这个还是有一定限制的,需要用户主动触发。那么我们有没有其他可选方案呢,当然我们会想到是不是可以通过向程序访问公众号h5的页面呢,这个时候我们会想到webview组件。

通过webview加载 公众号的一个h5页面,h5页面只做公众号授权处理,例如

小程序

constructor(props) {super(props)this.state = {num: 0}}handleLoad (e) {let { num } = this.state;this.setState({num: ++num}, ()=>{if(num==2){const url = e.detail.src;let code = getQueryString(url, 'code')Taro.redirectTo({url: `/pages/index/index?code=${code}`})}})      }handleError () {Taro.redirectTo({url: `/pages/index/index`})}render () {return (<WebView src='https://xxxx.xxxx.com/#/pages/get-openId/index' onLoad={ this.handleLoad } onError={ this.handleError } />)}

公众号

 constructor(props) {super(props);this.state = {};}componentDidMount() {Taro.showLoading({ title: '加载中...', mask: true })let APP_ID = '000000000000'let urlParams = getAuthUrl(window.location.href, APP_ID)let code = ''if(urlParams){code = getQueryString('code')}if(!code){window.location.href = urlParamsreturn}setTimeout(() => {Taro.hideLoading()}, 6000);}render() {return (<View className='loading-container'></View>)}
const getAuthUrl = (appId, currentPageUrl ) => {const authUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri="+ encodeURIComponent(currentPageUrl) +"&response_type=code&scope=snsapi_base&state=TOKEN&connect_redirect=1#wechat_redirect"return authUrl
}

小程序加载的页面会请求两次, 这是和公众号授权机制有关,我们只需要在页面加载的第二次从detial中拿到code就可以了。

微信小程序下获取公众号openId相关推荐

  1. 50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误.微信公众号引流工具.html,python学习小项目.艺术签名设计微信小程序,前端学习小项目有趣的项目

    50行代码实现的艺术签名设计微信小程序,轻松对接公众号,涨粉神器,学习赚钱两不误 先看效果 这个小程序实现艺术签名设计的功能 对接到公众号之后,相当于给你的公众号添加了一个功能,别人关注公众号后,可以 ...

  2. 微信小程序跳转公众号图文内容

    显示公众号推文 <web-view src="http://....."></web-view> <!--小程序要绑定公众号--> web-vi ...

  3. 微信小程序可以打开公众号文章

    微信今日晚间发布消息,宣布微信小程序基础能力.开发者工具全面升级,新增多项能力. 基础功能方面: 1.小程序新增打开公众号文章功能.可以打开已关联公众号的文章,不过文章内暂不支持赞赏.广告.关注公众号 ...

  4. 微信小程序跳转公众号

    长按识别跳转 步骤: 新建一个页面使用web-view组件的src链接到公众号编辑好的一篇带有公众号的二维码的文章 微信规则只有小程序关联的公众号里的文章可以长按识别二维码 <template& ...

  5. 微信小程序消息从公众号推送

    2020.06.05更新 新的一年认证续费只需要续费公众号. 小程序可以自动关联认证. 一定要记得!!!!!!! ------------------------------------------- ...

  6. 移动手机网站H5页面如何一键打开拉起微信小程序快速关注公众号功能?

    为了方便自己或公司H5网站页面上,能够让用户一键点击按钮,拉起打开微信小程序.实现让用户快速使用微信小程序功能.让用户快捷方便的关注公众号.快速添加微信客服等功能.可以利用H5链接微信环境外打开微信小 ...

  7. 发送微信小程序卡片到公众号

    微信服务号下可以主动给用户推送小程序卡片,但是得用户授权接受消息才可以,小程序卡片点击即可跳转到小程序中对应的页面 前提是服务号要与小程序绑定,且是同一主体. 1.发送卡片工具类 @Component ...

  8. 记录小程序中获取公众号的信息授权实现过程

    1.小程序页面触发webview跳转h5授权 <template><view v-if="showContent"><web-view :src=&q ...

  9. 微信小程序跳转公众号(引导关注)之 使用公众号消息

    1.首先 在微信公众号后台发送一条消息,这条消息你可以定向发送给自己看到就行.如图: 内容里面放生产的公众号二维码:微信会提示你是否生产这个跳转连接,还是只是放二维码 2:第二步 在小程序里面使用 s ...

最新文章

  1. 【NIO】IO多路复用
  2. 醒醒,迪卡侬请停止“低调”!
  3. 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库...
  4. PonyAI进军自动驾驶货运,乘用无人车历史性“小马过河”
  5. csv解析java_Java CSV解析器
  6. CentOS 6.5 shell中su切换自动输入密码
  7. 影视剪辑,视频剪辑素材音效哪里找?超实用剪辑入门必备素材
  8. C语言练习-还原算术表达式
  9. mac软件全屏时候最顶上任务栏保留_一键整理 Mac 顶部菜单栏,这款免费工具 App 还你清爽...
  10. javaweb基于SSM框架的书籍小说在线阅读下载网站
  11. c语言万年历一行打印两个月,万年历 c语言 两月一行
  12. java识别汉字个数_统计字符串中汉字的个数
  13. Python2.7+PyQt5的安装
  14. K_A02_005 基于单片机驱动数码管 LED 按键模块(TM1638) 流水灯 0-7 按键值显示
  15. 趋势丨从云到多云,超融合与云管平台如期而遇
  16. Opencv4学习-2、小案例之绿布抠图-视频背景图替换
  17. mysql-readme
  18. 生甜菜根糖的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 【目标追踪】三帧差法原理及实现
  20. Golang 云盘服务 (增加私有云分布式存储)

热门文章

  1. “机器学习”三重门,“中庸之道”趋若人(深度学习入门系列之四)
  2. linux系统查看sd卡格式ft32,Linux系统下如何挂载FAT32格式U盘
  3. 向北京集结!OpenI/O 2020启智开发者大会进入倒计时!
  4. Anatomy of an Android Application
  5. 噪声的频谱分析的重要意义_频谱分析仪的作用以及原理分析
  6. 第一个go练习服务——编写
  7. EazyDraw for Mac(矢量图绘制软件) v10.5.3中文版
  8. 利用platform.x509和platform.pk8生成系统签名文件
  9. oracle drop index pk,oracle – 执行唯一/主键 – 删除索引
  10. 【Web技术】1486- 在页面关闭时提交监控数据的4个解决方案