首页 > 其他分享 >react微信扫码登录

react微信扫码登录

时间:2023-05-15 12:22:42浏览次数:38  
标签:loadScriptOnceSync 扫码 const success 微信 react window res import

  1. 第一步
    <script src="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js">
    

     

  2. 第二步
    // 缓存已经加载的资源回调
    import loadScriptOnce from 'load-script-once'
    // 加载一次
    function loadScriptOnceSync(src:string, success:any) {
      loadScriptOnce(src).then(() => {
        if (typeof success === 'function') {
          success()
        }
      })
    }
    
    export default loadScriptOnceSync
    

     

  3. 第三步
    import { Spin } from 'antd';
    import React, { useEffect, useState } from 'react';
    import loadScriptOnceSync from './loadScriptOnceSync';
    import axios from 'axios';
    export default function ceshi() {
      const [isLoading, setIsLoading] = useState(false);
      const onOpenLogin = () => {
        const timer = setTimeout(() => {
          initWX();
          clearTimeout(timer);
        }, 500);
      };
      const initWX = () => {
      const WxLoginLogin:any = window; 
        new WxLoginLogin.WxLogin({
          self_redirect: true,
          id: 'login_container',
          appid: 'wx19909caac5d34d76',
          scope: 'snsapi_login', // 写死,网页应用暂时只支持这个值
          redirect_uri: 'https://www.51grab.cn', // 扫码成功后重定向地址
          state: 'fm', // 随机字符串
          style: 'black',
          href: 'data:text/css;base64,LmltcG93ZXJCb3ggLnFyY29kZSB7d2lkdGg6IDIwMHB4O30NCi5pbXBvd2VyQm94IC50aXRsZSB7ZGlzcGxheTogbm9uZTt9DQouaW1wb3dlckJveCAuaW5mbyB7d2lkdGg6IDI3MHB4O30='
        });
        setIsLoading(false);
      };
      const initScript = () => {
        const WXLOGINJS_URL = 'https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js';
        loadScriptOnceSync(WXLOGINJS_URL, () => setIsLoading(true));
      };
      const handleWxlogin = async () => {
        await initScript();
        onOpenLogin();
      };
      useEffect(() => {
        handleWxlogin();
        //  if (window.location.search.substring(6).split('&')[0]) {
        //     axios({
        //         'url': `https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx19909caac5d34d76&secret=4a115cefefe9bc9312e16dcb9b3b8a56&code=${window.location.search.substring(6).split('&')[0]}&grant_type=authorization_code`,
        //         'method': 'get'
        //     }).then(res=>{
        //         console.log('====================================');
        //         console.log('撒旦发射点发射点',res);
        //         console.log('====================================');
        //     })
        // }
      },[]);
      return (
        <Spin spinning={isLoading}>
          <div  id="login_container" style={{ width:'1000px',textAlign: 'center' }} />
        </Spin>
      );
    }
    

      

标签:loadScriptOnceSync,扫码,const,success,微信,react,window,res,import
From: https://www.cnblogs.com/zjxzhj/p/17401465.html

相关文章

  • 微信小程序头像昵称填写能力-数据存储至缓存
    又到了一年一度的授权接口修改时间---ps.去年10月,希望今年能消停点。话不多说上代码。setName文件:<buttonclass="avatar-wrapper"open-type="chooseAvatar"bind:chooseavatar="onChooseAvatar"><imageclass="avatar"src="{{avatarUrl}}"&g......
  • 第139篇:微信小程序的登录流程
    好家伙,补补补 顶不住了,跑不掉了,这部分的知识还是要补上 来看看微信小程序登录的完整流程 最左边的一列就是前端负责的部分了几个关键的参数:code:一个用户登录凭证,就是一个临时的tokenAppid:appid是微信账号的唯一标识,这个是固定不变的;如果了解微信公众号开发的就需要......
  • 前后端微信小程序订阅消息推送
    小程序端开发前需要获取小程序设置模板ID,没有设置模板消息时可以添加新的模板mp.weixin.qq.com拥有模板ID后,需要获取到下发消息权限用户下发推送消息权限在订单或者其它操作完成时,调起客户端小程序订阅消息界面,获取到用户操作结果//index.wxml<buttonbindtap="bindSubscribe......
  • 如何优雅的处理 React 表单
    如何优雅的处理React表单HTML表单处理本身是一件比较简单的事情,但是当我们对交互的要求高了之后,他就会变得异常复杂——尤其是在React中使用时,我们不得不创建冗长的代码去维护各种状态。那么有没有什么现成的开源方案可以供我们使用,最终优雅的创建React表单呢?本文不会详......
  • qt5_c++工业上位机自动扫码数据追溯 Qt5之工业应用! 一
    qt5_c++工业上位机自动扫码数据追溯Qt5之工业应用!一套完整工程,链接PLC,工业无人值守自动扫码使用,无线扫码枪SR1000的使用,使用qt5.14,用qtcreator加载工程后,编译,运行,可调试可扩展,目的是学习qt开发方式。Sqlserver存储方式,查询自由。excel方便导出,c++效率无需赘言。ID:6939637937650......
  • 微信使用SQLite?
    SQLite是一个被大家低估的数据库,但有些人认为它是一个不适合生产环境使用的玩具数据库。事实上,SQLite是一个非常可靠的数据库,它可以处理TB级的数据,但它没有网络层。接下来,本文将与大家共同探讨SQLite在过去一年中最新的SQL功能。SQLite“只是”一个库,它不是传统意义上的服......
  • 威纶通与三菱PLC条码枪解码程序本程序是威纶通触摸屏USB接头直接插条形码扫码枪,得到的
    威纶通与三菱PLC条码枪解码程序本程序是威纶通触摸屏USB接头直接插条形码扫码枪,得到的数据传送到PLC中进行解码,转化成为PLC能识别的十进制,用于需要使用扫码枪设定数据是非常实用,当然带485通信的扫码枪直接与PLC通信不需要这一步,到时带485枪比较贵,普通的USB就100左右,带串口的通常上......
  • 更改微信PC版(电脑版、windows版)的消息提示音
    目标:声音文件包含在微信PC版安装路径中的「WeChatResource.dll」文件中,修改它。路径举例:C:\ProgramFiles(x86)\Tencent\WeChat\[3.9.2.26] 用到的软件:eXeScope下载地址:https://www.123pan.com/s/kW3DVv-aHxJA.html复制链接(破解版)https://ro.softpedia-sec......
  • react Ref 什么时候用,怎么用
    何时使用ref通常,当你的组件需要“跳出”React并与外部API通信时,你会用到ref——通常是不会影响组件外观的浏览器API。以下是这些罕见情况中的几个:存储timeoutID存储和操作DOM元素存储不需要被用来计算JSX的其他对象。如果你的组件需要存储一些值,但不影......
  • useCallback,useMemo, React.memo的区别
     同:useCallback,useMemo和React.memo是三个在React中用于优化性能的方法。它们的主要目标是避免不必要的重新渲染和计算。因为当一个组件的状态发生变化时,React会重新渲染整个组件树。用这三个hook和组件,可以提升性能。 异:下面从属性,接收参数,返回值,意义和案例等方面进行详细地......