网页微信扫码登录

2022-06-14  本文已影响0人  宏_4491

微信官方文档
https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html

第一种方法是通过动态创建script 标签引入"http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"

上代码


<template>
    <view class="content">
        <view id="login_container"> </view>
    </view>
</template>

<script setup lang="ts">
import { ref, onMounted } from "vue";
import { onLoad } from "@dcloudio/uni-app";

/** Data 数据 */
const appID = ref<string>("wx6b26b7c75e8f3e5a");
const redirectUrl = ref<string>("https://www.imooc.com/");

const creatScript = () => {
    let secScript = document.createElement("script");
    secScript.setAttribute("type", "text/javascript");
    secScript.setAttribute(
        "src",
        "http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"
    );
    document.body.insertBefore(secScript, document.body.lastChild);
    let timer = setTimeout(() => {
        getWxLoginCode();
    }, 500);
};

const getWxLoginCode = () => {
    var obj = new WxLogin({
        self_redirect: true,
        id: "login_container",
        appid: appID.value,
        scope: "snsapi_login",
        redirect_uri: redirectUrl.value,
        state: "",
        style: "",
        href: ""
    });
};

onLoad(() => {});

onMounted(() => {
    creatScript();
});
</script>

<style>
.content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#login_container {
    height: 200rpx;
    width: 200rpx;
    margin-top: 200rpx;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50rpx;
}

.logo {
    height: 200rpx;
    width: 200rpx;
    margin-top: 200rpx;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50rpx;
}

.text-area {
    display: flex;
    justify-content: center;
}

.title {
    font-size: 36rpx;
    color: #8f8f94;
}
</style>

第二种方法是使用vue-wxlogin

npm install vue-wxlogin

<template>
    <view class="content">
        <wxlogin :appid="appID" :scope="scope" :redirect_uri="redirectUrl"></wxlogin>
    </view>
</template>

<script setup lang="ts">
import { ref } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import wxlogin from "vue-wxlogin";
/** Data 数据 */
const appID = ref<string>("wx6b26b7c75e8f3e5a");
const redirectUrl = ref<string>("https://www.imooc.com/");
const scope = ref<string>("snsapi_login");

onLoad(() => {});

</script>

<style>
.content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

#login_container {
    height: 200rpx;
    width: 200rpx;
    margin-top: 200rpx;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50rpx;
}

.logo {
    height: 200rpx;
    width: 200rpx;
    margin-top: 200rpx;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 50rpx;
}

.text-area {
    display: flex;
    justify-content: center;
}

.title {
    font-size: 36rpx;
    color: #8f8f94;
}
</style>
上一篇下一篇

猜你喜欢

热点阅读