解决原生微信小程序获取关联公众号的code(不是wx.login的code)来获取公众号的openId

解决步骤

以下是使用 web-view 并配配合微信公众号提供的 网页授权 来实现

1、在小程序中做一个web-view页面,页面中只需要写微信 网页授权的链接就行了,注意appid请自行替换(公众号的)。

 onLoad() {this.setData({src: 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=`自己公众号openid`&redirect_uri=自己跳转的H5页面&response_type=code&scope=snsapi_base&state=123#wechat_redirect',})},

2、redirect_uri是我们第一步中的网页地址。**注意:**需要在公众号管理平台中配置授权域名

redirect_uri:必须是https开头,并且需要如下配置
在这里插入图片描述

3、redirect_uri的页面(H5页面)需要截取location.search获取code;返回微信小程序,需要安装weixin-js-sdk

4、拿到H5返回小程序的code值,调用后台接口就可以获取公众号的openId

具体代码

1、微信小程序的web-view页面

<web-view src="{{src}}" />
Page({data: {src: '',},onLoad() {this.setData({src: 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=自己的公众号openid&redirect_uri=需要跳转的H5页面&response_type=code&scope=snsapi_base&state=123#wechat_redirect',})}
});

2、Vue H5页面

<template><div class="wx-h5"></div>
</template>
<script>
import wx from "weixin-js-sdk";
import { showFullScreenLoading } from "@/utils/loading";
export default {name: "WXh5",mounted() {// 页面loadingshowFullScreenLoading("页面跳转中...", "", "wx-text-color");// 跳转到tarBar页面// wx.miniProgram.switchTab({ url: "****" });if (this.getUrlCode().code) {wx.miniProgram.redirectTo({url: `/subpackages/extension/index?code=${this.getUrlCode().code}`})}},methods: {getUrlCode() {// 截取url中的code方法var url = location.search// eslint-disable-next-line no-new-objectvar theRequest = new Object()if (url.indexOf('?') != -1) {var str = url.substr(1)var strs = str.split('&')for (var i = 0; i < strs.length; i++) {theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1]}}return theRequest}}
};
</script><style lang="scss">
.wx-text-color {width: 90px;height: 105px;top: 50%;left: 50%;transform: translate(-50%, -50%);border-radius: 10px;.circular {.path {stroke: #fff;}}.el-loading-text {color: #fff;font-size: 12px;}
}
</style>

3、如上在微信小程序的/subpackages/extension/index页面的onLoad接收参数code,便可根据code获取公众号的openId

4、注意点:

微信小程序的web-view页面只能独立出来使用,不能在/subpackages/extension/index页面使用,不然返回到/subpackages/extension/index页面后,该页面的事件都会失效。

相关文章

基于ElementUi再次封装基础组件文档


基于ant-design-vue再次封装基础组件文档


vue3+ts基于Element-plus再次封装基础组件文档

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】蓝牙配对失败,org.bluez.Error.AuthenticationRejected

问题 蓝牙配对失败&#xff0c;报错&#xff1a;org.bluez.Error.AuthenticationRejected 解决方法 bluetoothctl disconnect MAC地址 untrust MAC地址 remove MAC地址然后重新 scan on scan off pair MAC地址// 如果出现提示&#xff0c;请输入PIN&#xff1a; PIN code: #…

欧盟全球大气排放数据库(EDGAR)

EDGAR&#xff0c;全称Emissions Database for Global Atmospheric Research&#xff0c;是欧盟的联合研究中心&#xff08;JRC&#xff09;发布的。官网&#xff1a;https://edgar.jrc.ec.europa.eu/ EDGAR v8.0 提供 1970~2022 年三种主要温室气体&#xff08;CO2、CH4、N2O…

Android SDK环境搭建[图解]; 解决问题Done. Nothing was installed.

安装SDK Android SDK环境搭建 依赖java环境,需要自备Java环境 (100%实操成功) 目录 1. 解压&#xff1a;解压到非中文无特殊字符的目录 2. 双击&#xff1a;SDK Manager.exe&#xff0c;不要选全部!不要选全部!不要选全部!(会下很久) 3. 然后勾选组件​ 4. 设置环境变量 …

计算机网络、浏览器相关高频面试题

为什么使用CDN 会更快&#xff1f; 没有使用CDN的情况下&#xff0c;用户从浏览器输入地址&#xff0c;依次经过浏览器缓存、操作系统缓存&#xff08;如本地host文件&#xff09;、域名解析服务器、根域名解析服务器、顶级域名服务器直到找到对应的ip地址返回给用户&#xff…

UM2003A 一款200 ~ 960MHz ASK/OOK +18dBm 发射功率的单发射芯片

UM2003A 是一款工作于 200 ~ 960MHz 频段的单片集成、高性能、可独立运行的 OOK 发射器。内部集成的 OTP 方便用户对各种射频参数以及特色功能进行编程。该芯片以其高集成度和低功耗的设计&#xff0c;特别适用于低成本&#xff0c;低功耗&#xff0c;电池驱动的无线发射应用。…

【TypeScript】入门基础知识

目前在做项目的技术栈是 reacttypescript&#xff0c;之前只知道 ts 是 js 的扩展&#xff0c;增加了类型检查&#xff0c;但是没有仔细的学过&#xff0c;纯纯看别人代码上手 anyscript&#xff08;这很难评...&#xff09;。趁着最近空闲&#xff0c;就学习一下 ts 的基础知识…

内部员工满意度问卷设计|内部员工满意度调查表

本文由群狼调研&#xff08;长沙消费者满意度调查&#xff09;出品&#xff0c;欢迎转载&#xff0c;请注明出处。设计内部员工满意度问卷需要综合考虑多个方面&#xff0c;以获取的员工意见和反馈。以下是一个更详细的内部员工满意度问卷设计示例&#xff0c;供您参考和修改&a…

章鱼网络 2023 年全回顾|暨12月进展报告

2023年&#xff0c;章鱼网络轻装上阵&#xff0c;身处加密行业的低谷中砥砺前行。 12月17日&#xff0c;经过整整1年时间的开发和打磨&#xff0c;章鱼网络在重磅上线 Octopus 2.0&#xff0c;即 $NEAR Restaking 和 NEAR-IBC&#xff0c;获得了社区和市场的一致认可&#xff…

android:clickable=“false“无效,依然能被点击

android:clickable“false”依然能被点击&#xff0c;该属性意义何在&#xff1f; 在Android中&#xff0c;android:clickable 属性用于指定一个视图&#xff08;View&#xff09;是否可以被点击。当你设置 android:clickable"true" 时&#xff0c;表示该视图可以接…

Python爬虫快速入门

首先了解一下什么是爬虫。与字面意思相符&#xff0c;爬虫就是模拟人的行为在互联网上获取数据的程序。 它通过访问目标网站的首页或者特定页面&#xff0c;分析页面结构&#xff0c;提取所需的信息&#xff0c;并将其保存到本地或者进行进一步的处理。 总结起来&#xff0c;…

Java中多线程二

抢占调度模型 概述&#xff1a;优先让优先级高的线程使用 CPU &#xff0c;如果线程的优先级相同&#xff0c;那么随机会选择一个&#xff0c;优先级高的线程获取的 CPU 时间片相对多一些 Thread 类中一些关于线程的方法 方法简述public final int getPriority()返回此线程的优…

自动化控制面板-1Panel

一、1Panel自动化控制面板 官网地址 1Panel 可以实现&#xff1a; 快速建站、高效管理、安全可靠、一键备份、应用商店 快速建站&#xff1a;深度集成 Wordpress 和 Halo&#xff0c;域名绑定、SSL 证书配置等一键搞定&#xff1b;高效管理&#xff1a;通过 Web 端轻松管理 …

Docker启动报错:No chain/target/match by that name 处理

一、问题描述 某次OS升级重启后&#xff0c;发现docker redis实例无法启动&#xff0c;报错如下&#xff1a; Error response from daemon: driver failed programming external connectivity on endpoint vpm.redis.2 (f4b70fef65000bcacb574ee59e65d9b7a25f2abfa5dec0be9b74…

SwiftUI 集成 IMKit

Swift UI 集成 IMKit 在 SwiftUI 中&#xff0c;集成 IMKit 中 RCConversationListViewController 和 RCConversationViewController 两页面可能存在以下问题&#xff1a; 1、直接在 View 中使用&#xff0c;两个页面会错位&#xff1b; 2、用 NavigationView 集成会话列表和会…

GPM合并资料整理-GEM部分

一、性能数据上报项 1. CPU模块 上报键值说明采集平台cpu当前进程cpu使用率平均值Android & iOStotcpu系统cpu总使用率平均值Android & iOScpu_temp_maxcpu最高温度Androidcpu_temp_avgcpu温度平均值Androidgpu_temp_avggpu温度平均值Androidgpu_temp_maxgpu最高温度…

阿里云实时计算企业级状态存储引擎 Gemini 技术解读

本文整理自阿里云 Flink 存储引擎团队李晋忠&#xff0c;兰兆千&#xff0c;梅源关于阿里云实时计算企业级状态存储引擎 Gemini 的研究&#xff0c;内容主要分为以下五部分&#xff1a; 流计算状态访问的痛点企业级状态存储引擎GeminiGemini 性能评测&线上表现结语参考 一、…

2024年最新ChemiCloud优惠75%折扣WordPress外贸主机

ChemiCloud怎么样&#xff1f;ChemiCloud好不好&#xff1f;ChemiCloud是一家成立于2016年的云虚拟主机提供商&#xff0c;他们在全球范围内拥有多个机房&#xff0c;并以其出色的性价比而备受赞誉。他们整合了许多先进技术&#xff0c;包括Digital Ocean SSD云服务器、LiteSpe…

云计算任务调度仿真03

前面陆续分享了基于policy gradient和DQN实现的深度强化学习任务调度仿真&#xff0c;上次的DQN没有实现fix-qtarget和experience replay&#xff0c;这次再分享实现了这两个方法的DQN任务调度仿真。 经验重放&#xff0c;定义存储和存放次序&#xff0c;这里也可以自行修改 de…

docker容器化技术

docker容器化技术 1.docker概述 docker简单的说就是一个沙盒技术&#xff0c;主要目的是为了将应用运行在其中与外界隔离&#xff0c;方便这个沙盒可以被转移到其它宿主机器。docker虚拟化的是java app、 依赖包、环境信息、操作系统软件。先有docker后有容器化技术&#xff…

提升测试效率,轻松并行运行测试——探秘Pytest插件pytest-xdist

在软件开发中&#xff0c;测试是确保代码质量的重要一环。然而&#xff0c;随着项目规模的增大&#xff0c;测试用例的数量也随之增多&#xff0c;测试的执行时间可能成为一个瓶颈。为了解决这个问题&#xff0c;Pytest提供了丰富的插件生态系统&#xff0c;其中 pytest-xdist …