Files
youlegames/codes/minipro/calculation/miniprogram/pages/webview/webview.ts
2026-02-04 23:47:45 +08:00

51 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { config } from '../../config';
Page({
data: {
url: ''
},
onLoad(options: any) {
// 这里的 URL 必须是您后端服务器的地址
// 注意本地调试时web-view 访问 localhost 需要在开发者工具勾选“不校验域名”
// 但微信 OAuth 回调必须是公网域名,所以这里填 localhost 只能走到跳转微信那一步,回调会失败
// 除非您配置了 host 映射或者使用了内网穿透
const serverUrl = `${config.baseUrl}/auth/oa/login`;
this.setData({ url: serverUrl });
},
onMessage(e: any) {
console.log('WebView message:', e.detail);
const data = e.detail.data;
if (data && data.length > 0) {
const lastData = data[data.length - 1];
// 保存到本地存储,供 index 页面 onShow 读取并触发后续逻辑
// 保存所有可用的微信用户信息
wx.setStorageSync('oa_user_info', {
nickName: lastData.nickname,
avatarUrl: lastData.headimgurl,
unionid: lastData.unionid,
gender: lastData.sex, // 1男 2女 0未知
country: lastData.country,
province: lastData.province,
city: lastData.city,
language: lastData.language
});
// 同时更新上一页数据,确保 UI 即时刷新
const pages = getCurrentPages();
const prevPage = pages[pages.length - 2]; // 上一个页面 (index)
if (prevPage) {
prevPage.setData({
"userInfo.avatarUrl": lastData.headimgurl,
"userInfo.nickName": lastData.nickname,
"userInfo.gender": lastData.sex,
"userInfo.country": lastData.country,
"userInfo.province": lastData.province,
"userInfo.city": lastData.city,
"userInfo.language": lastData.language,
"unionid": lastData.unionid || prevPage.data.unionid
});
}
}
}
})