“mitao”
2026-04-17 d699da385dda6257677ee93bef47388c0635f64e
traditionalApp/App.vue
@@ -1,22 +1,46 @@
<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>