Bladeren bron

Merge branch 'master' of https://git.nanodreamtech.com/wkw/wallet_app

wkw 3 weken geleden
bovenliggende
commit
d1e31a6827
9 gewijzigde bestanden met toevoegingen van 94 en 22 verwijderingen
  1. 3 0
      capacitor.config.ts
  2. 3 2
      package.json
  3. 34 0
      scripts/sync-version.js
  4. 5 10
      src/App.vue
  5. 37 0
      src/hooks/updataApp.js
  6. 2 2
      src/main.js
  7. 6 7
      src/plugins/storage.js
  8. 2 1
      src/views/wallet/index.vue
  9. 2 0
      vite.config.js

+ 3 - 0
capacitor.config.ts

@@ -1,4 +1,7 @@
 import { CapacitorConfig } from '@capacitor/cli';
+import { updateVersion } from './scripts/sync-version';
+ 
+updateVersion() 
 
 const config: CapacitorConfig = {
   appId: 'com.example.app',

+ 3 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wallet_app",
-  "version": "1.0.0",
+  "version": "2.0.0",
   "private": true,
   "type": "module",
   "scripts": {
@@ -29,7 +29,7 @@
     "@capacitor/local-notifications": "^7.0.1",
     "@capacitor/push-notifications": "^7.0.1",
     "@capacitor/status-bar": "^7.0.1",
-    "@capacitor/toast": "^7.0.1",
+    "@capacitor/toast": "^7.0.1", 
     "@ionic-native/fingerprint-aio": "^5.36.0",
     "axios": "^1.10.0",
     "clipboard": "^2.0.11",
@@ -45,6 +45,7 @@
     "sharp": "^0.34.2",
     "typescript": "^5.8.3",
     "vant": "^4.9.20",
+    "vconsole": "^3.15.1",
     "vue": "^3.5.13",
     "vue-i18n": "^11.1.9",
     "vue-router": "^4.5.0",

+ 34 - 0
scripts/sync-version.js

@@ -0,0 +1,34 @@
+import fs from "fs";
+import path from "path";
+
+export const updateVersion = () => {
+  // 读取 package.json 版本
+  const packageJson = JSON.parse(fs.readFileSync("./package.json", "utf8"));
+  const version = packageJson.version;
+ 
+  const rootDir = process.cwd();
+
+  // 更新 Android 版本
+  const androidBuildGradlePath = path.join(
+    rootDir,
+    "android/app/build.gradle"
+  );
+  let androidBuildGradle = fs.readFileSync(androidBuildGradlePath, "utf8");
+  androidBuildGradle = androidBuildGradle.replace(
+    /versionName\s+".*?"/,
+    `versionName "${version}"`
+  );
+  fs.writeFileSync(androidBuildGradlePath, androidBuildGradle);
+
+  // 更新 iOS 版本
+  const iosPlistPath = path.join(rootDir, "ios/App/App/Info.plist");
+  let iosPlist = fs.readFileSync(iosPlistPath, "utf8");
+  iosPlist = iosPlist.replace(
+    /<key>CFBundleShortVersionString<\/key>\s*<string>.*?<\/string>/,
+    `<key>CFBundleShortVersionString</key>\n\t<string>${version}</string>`
+  );
+  fs.writeFileSync(iosPlistPath, iosPlist);
+
+  console.log(`✅ 版本号已同步至: ${version}`);
+  return version
+};

+ 5 - 10
src/App.vue

@@ -7,17 +7,17 @@
     class="app-bar-header"
     :style="notchStyle"
   />
-  <RouterView :style="mainStyle" />
+  <RouterView />
 </template>
 
 <script setup>
+import { appStart } from "@/hooks/updataApp";
 import { getNotchHeight } from "@/utils/statusBar";
 const route = useRoute();
 const router = useRouter();
 
 const notchStyle = ref({});
-const mainStyle = ref({});
-
+ 
 const goBack = () => {
   if (route.meta.navbar) {
     router.back();
@@ -29,14 +29,9 @@ onBeforeMount(async () => {
   notchStyle.value = { 
     paddingTop: `${height}px`,
   };
+ 
 
-  if (route.meta.navbar) {
-    mainStyle.value.marginTop = `0 px`;
-  } else {
-    mainStyle.value = {
-      marginTop: `${height}px`,
-    };
-  }
+  appStart()
 });
 </script>
 

+ 37 - 0
src/hooks/updataApp.js

@@ -0,0 +1,37 @@
+import { App } from "@capacitor/app";
+import { Capacitor } from "@capacitor/core";
+
+ 
+
+// 检测是否有更新包
+export const checkUpdate = async () => {
+  // 判断是否是web端
+  if (Capacitor.getPlatform() === "web") {
+    return;
+  }
+  // 获取当前应用版本
+  const { version } = await App.getInfo();
+  console.log("当前版本:", info);
+
+  // 从服务器获取最新版本信息
+  const response = await fetch('https://your-server.com/api/check-update');
+  const serverData = await response.json();
+
+   // 对比版本号(建议使用语义化版本比较库,如 compare-versions)
+  if (compareVersions(serverData.latestVersion, version) > 0) {
+    console.log('发现新版本:', serverData.latestVersion);
+    return serverData; // 返回更新信息
+  }
+  return null; // 无更新
+};
+
+// 示例:在应用启动时检查
+export const appStart = async () => {
+  // const updateInfo = await checkUpdate();
+  // if (updateInfo) {
+  // showUpdateDialog(updateInfo); // 提示用户更新
+  // }
+
+  const dd = await checkUpdate();
+  console.log("当前版本:", dd);
+};

+ 2 - 2
src/main.js

@@ -21,11 +21,11 @@ import SvgIcon from "@/components/Svg-icon/SvgIcon.vue";
 import { setupPlugin, initCapacitor } from './plugins';
 import { setup  } from './plugins/storage';
 
+import VConsole from 'vconsole';
+new VConsole();
 
 const app = createApp(App)
 
-
-
 async function appInit() {
   const app = createApp(App);
    // 注入组件

+ 6 - 7
src/plugins/storage.js

@@ -1,12 +1,11 @@
-
-import { showNotify } from 'vant';
+import { showToast } from "vant";
 import { i18n } from "@/i18n";
- 
+
 export function setup() {
-  window["$msg"] = (msg, type = 'warning')=>{
-    showNotify({ type:type, message: msg, background:"transparent", color:"#4765dd", top: 150})
-  } 
+  window["$msg"] = (msg, position = "top") => {
+    showToast({ position: position, message: msg });
+  };
 
   window["$t"] = i18n.global.t;
-  window["$web3"] = undefined
+  window["$web3"] = undefined;
 }

+ 2 - 1
src/views/wallet/index.vue

@@ -265,6 +265,7 @@
       height: 286px;
       width: 100%;
       position: absolute;
+      top: -4px;
       left: 0;
       z-index: -1;
     }
@@ -321,7 +322,7 @@
       backdrop-filter: blur(3px);  
       -webkit-backdrop-filter: blur(3px);  
       border-radius: 15px;
-      margin: 0 17px 23px;
+      margin: 0 17px 20px 17px;
       box-shadow:0 7px 10px #15277031;
       box-sizing: border-box;
       display: flex;

+ 2 - 0
vite.config.js

@@ -7,6 +7,8 @@ import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
 import { codeInspectorPlugin } from "code-inspector-plugin";
 import AutoImport from "unplugin-auto-import/vite";
 
+
+
 import { resolve } from "path";
 
 // https://vite.dev/config/