网页微信扫码登录
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>