| | |
| | | <script setup> |
| | | import { |
| | | onShow, |
| | | onLaunch, |
| | | onHide |
| | | } from '@dcloudio/uni-app'; |
| | | onLaunch |
| | | } from '@dcloudio/uni-app' |
| | | import { cacheAppInviteCode, normalizeOptionalText } from '@/utils/utils.js' |
| | | |
| | | /** |
| | | * 应用启动时尝试读取系统剪贴板中的邀请码。 |
| | | */ |
| | | onLaunch(() => { |
| | | console.log('onLaunch'); |
| | | readInviteCodeFromClipboard() |
| | | }) |
| | | onShow(() => { |
| | | console.log('onShow'); |
| | | }) |
| | | onHide(() => { |
| | | console.log('onHide'); |
| | | }) |
| | | |
| | | /** |
| | | * 从系统剪贴板读取邀请码,供注册页自动带出。 |
| | | */ |
| | | function readInviteCodeFromClipboard() { |
| | | uni.getClipboardData({ |
| | | success: (result) => { |
| | | const inviteCode = extractInviteCode(result && result.data) |
| | | if (!inviteCode) { |
| | | return |
| | | } |
| | | cacheAppInviteCode(inviteCode) |
| | | }, |
| | | fail: () => { |
| | | // 首次启动或系统限制时允许静默失败,不影响主流程。 |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /** |
| | | * 从任意文本中提取 6 位邀请码。 |
| | | */ |
| | | function extractInviteCode(value) { |
| | | const normalizedValue = normalizeOptionalText(value).toUpperCase() |
| | | const matchedInviteCode = normalizedValue.match(/[A-Z0-9]{6}/) |
| | | return matchedInviteCode ? matchedInviteCode[0] : '' |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss"> |
| | | /*每个页面公共css */ |
| | | @import "@/uni_modules/uview-pro/index.scss"; |
| | | @import "@/static/style/index.scss"; |
| | | </style> |
| | | </style> |