diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json index e0ba03e..b847f9a 100644 --- a/.hbuilderx/launch.json +++ b/.hbuilderx/launch.json @@ -2,7 +2,7 @@ "version" : "1.0", "configurations" : [ { - "playground" : "standard", + "playground" : "custom", "type" : "uni-app:app-ios" }, { diff --git a/manifest.config.ts b/manifest.config.ts index 7e01e06..cbd03c6 100644 --- a/manifest.config.ts +++ b/manifest.config.ts @@ -147,11 +147,11 @@ export default defineManifestConfig({ 'description': 'Web视图插件,支持在App内打开网页', 'platforms': { 'android': { - 'appid': '', + 'appid': '__UNI_WEBVIEW_ANDROID', 'autostart': false }, 'ios': { - 'appid': '', + 'appid': '__UNI_WEBVIEW_IOS', 'autostart': false } } diff --git a/package.json b/package.json index cb4a26d..37cd614 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "@dcloudio/uni-automator": "3.0.0-4050520250307001", "@dcloudio/uni-cli-shared": "3.0.0-4050520250307001", "@dcloudio/uni-stacktracey": "3.0.0-4050520250307001", + "@dcloudio/uni-uts-v1": "3.0.0-4050520250307001", "@dcloudio/uni-vue-devtools": "3.0.0-4020420240722002", "@dcloudio/vite-plugin-uni": "3.0.0-4050520250307001", "@iconify-json/carbon": "^1.2.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 983dd28..7e95c7c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -96,6 +96,9 @@ importers: '@dcloudio/uni-stacktracey': specifier: 3.0.0-4050520250307001 version: 3.0.0-4050520250307001 + '@dcloudio/uni-uts-v1': + specifier: 3.0.0-4050520250307001 + version: 3.0.0-4050520250307001(rollup@4.24.1) '@dcloudio/uni-vue-devtools': specifier: 3.0.0-4020420240722002 version: 3.0.0-4020420240722002(@vueuse/core@11.1.0(vue@3.4.21(typescript@5.5.4)))(postcss@8.4.47)(rollup@4.24.1)(vue@3.4.21(typescript@5.5.4)) @@ -849,6 +852,9 @@ packages: '@dcloudio/uni-app-vue@3.0.0-4050520250307001': resolution: {integrity: sha512-MFFkhzukg06ef0AuKKjKcuxLcbOTnSBbDvrw7TJUe0pmM4u4ttw19Wn28/2O9QVsfshvD4QyT4xiItNiUm4X8Q==} + '@dcloudio/uni-app-x@0.7.51': + resolution: {integrity: sha512-SyJ5AodRtaztDv6+IVmnrbBgOwBtb8EBox9pLfloEnEEwrGZPnMEjrNgXIfPzXESN/utTnAyn/9dCSyy1Gnuug==} + '@dcloudio/uni-app@3.0.0-4050520250307001': resolution: {integrity: sha512-flwafDA0RmqUaqqGex45UYA54ZERReRtPeTWG6VnzexcSefuXVQPQnNRghuu347irNcVALmmO8HuVdkX1Gei3Q==} peerDependencies: @@ -949,9 +955,53 @@ packages: '@dcloudio/uni-stat@3.0.0-4050520250307001': resolution: {integrity: sha512-+/0MMzvLDyTTo0Vof56cpScY4JKfGL9I2he4fGPfNpYuMOW897WOST7Tgi90se1jYhqK+a1TKFn7h0HySv08kA==} + '@dcloudio/uni-uts-v1@3.0.0-4050520250307001': + resolution: {integrity: sha512-yUppJuVQCYXOfmr72Sefev7seyW5aLTz7UYJr08IwVR0gvBVe/J1P3bLK2OOKwppF47G17VxjyXCFkNFpmfIZA==} + '@dcloudio/uni-vue-devtools@3.0.0-4020420240722002': resolution: {integrity: sha512-clN+gS4k3wveRaVVQeo24O7UQW+x6czaz7/uQ6Mh8qSg8os1BOgbzfOYVdzV0ArdRbYTT6BzEkO/AjgPkXkXWA==} + '@dcloudio/uts-darwin-arm64@3.0.0-4050520250307001': + resolution: {integrity: sha512-o8TJPgRcdf7nANkb9haBneQWJIkjcwcDqMrXjLWwcZzO37MJcoB9yLYZIMnpG6lP1BiekKzArN46FGLXgfeDUw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@dcloudio/uts-darwin-x64@3.0.0-4050520250307001': + resolution: {integrity: sha512-YEZep9NpgZVWkMT9uxtzoktz9vhU31FORDa/BtXNsfDvV2S8qDIQAuB+Rk51HiMK/OsNApTU8+UJM95saqevng==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@dcloudio/uts-linux-x64-gnu@3.0.0-4050520250307001': + resolution: {integrity: sha512-EVn0RNeaath5un7LbgMCRrgfjyw7ItT+u5CX7IgCVXSY1VEjEAJqTEu0Ezb81lK9RaCGg2wEOsTHHI8VaQrJfw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [gnu] + + '@dcloudio/uts-linux-x64-musl@3.0.0-4050520250307001': + resolution: {integrity: sha512-SMG0p+6vTtutHg3QQcmLWdCqFnnwgrm/cY+oNMmajgqJ0XoXDzTiXXpKkDh5EijJOpSMcLQ+k5dPaX9JCYx0wg==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@dcloudio/uts-win32-ia32-msvc@3.0.0-4050520250307001': + resolution: {integrity: sha512-624rsamTprrvH82fFJqr7iewFHXEOcMcU7ULLi4gkKeeke01v6QkIyGZVSPBQiueIvVnTgB9c6beMpoJVo/p4g==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@dcloudio/uts-win32-x64-msvc@3.0.0-4050520250307001': + resolution: {integrity: sha512-ICoWEuLYZqiQoGKDfVQM6mU8JZQQNl6KbdrH/6DRhi5asWJqAMhax6B8dsd6NIJQ+fwOUZalMYnpqk/0g16k/A==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@dcloudio/uts@3.0.0-4050520250307001': + resolution: {integrity: sha512-vbfUkdY5vuxzW4/n8scpYBnh++wxBe8pp0uh9Zbgyyhy5wztmQDjef7d44x7xfBt7BBKgELz3+TC1A07FhGqZg==} + '@dcloudio/vite-plugin-uni@3.0.0-4050520250307001': resolution: {integrity: sha512-wrjJvHsOEmx5XWfd12KDm3eGHkVUWm1HpAP5cUZTCEd85iXIccf2GJJxr4Aa0rx2Wfij7ArVSMpZfdxFeeI+eg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -2367,6 +2417,9 @@ packages: alien-signals@0.2.0: resolution: {integrity: sha512-StlonZhBBrsPPwrDjiPAiVTf/rolxffLxVPT60Qv/t88BZ81BvUVzHgGqEFvJ1ii8HXtm1+zU2Icr59tfWEcag==} + android-versions@1.9.0: + resolution: {integrity: sha512-13O2B6PQMEM4ej9n13ePRQeckrCoKbZrvuzlLvK+9s2QmncpHDbYzZxhgapN32sJNoifN6VAHexLnd/6CYrs7Q==} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -2658,6 +2711,10 @@ packages: colorjs.io@0.5.2: resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} + colors@1.4.0: + resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} + engines: {node: '>=0.1.90'} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2669,6 +2726,9 @@ packages: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} + commondir@1.0.1: + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + compare-versions@3.6.0: resolution: {integrity: sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==} @@ -3276,6 +3336,10 @@ packages: resolution: {integrity: sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==} engines: {node: '>= 0.8'} + find-cache-dir@3.3.2: + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} + find-up-simple@1.0.0: resolution: {integrity: sha512-q7Us7kcjj2VMePAa02hDAF6d+MzsdsAWEwYyOpwUtlerRBkOEPBCRZrAV4XfcSN8fHAgaD0hP7miwoay6DCprw==} engines: {node: '>=18'} @@ -3412,6 +3476,9 @@ packages: graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + graphlib@2.1.8: + resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==} + gzip-size@6.0.0: resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==} engines: {node: '>=10'} @@ -3954,6 +4021,10 @@ packages: magic-string@0.30.17: resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -3961,6 +4032,11 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + md5-file@5.0.0: + resolution: {integrity: sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==} + engines: {node: '>=10.13.0'} + hasBin: true + mdast-util-from-markdown@0.8.5: resolution: {integrity: sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==} @@ -4159,6 +4235,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + object-inspect@1.13.2: resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} engines: {node: '>= 0.4'} @@ -6481,6 +6561,8 @@ snapshots: '@dcloudio/uni-app-vue@3.0.0-4050520250307001': {} + '@dcloudio/uni-app-x@0.7.51': {} + '@dcloudio/uni-app@3.0.0-4050520250307001(@dcloudio/types@3.4.14)(@vueuse/core@11.1.0(vue@3.4.21(typescript@5.5.4)))(postcss@8.4.47)(rollup@4.24.1)(vue@3.4.21(typescript@5.5.4))': dependencies: '@dcloudio/types': 3.4.14 @@ -7048,6 +7130,32 @@ snapshots: - vue - webpack-sources + '@dcloudio/uni-uts-v1@3.0.0-4050520250307001(rollup@4.24.1)': + dependencies: + '@babel/code-frame': 7.26.0 + '@dcloudio/uni-app-x': 0.7.51 + '@dcloudio/uts': 3.0.0-4050520250307001 + '@rollup/pluginutils': 5.1.3(rollup@4.24.1) + '@vue/shared': 3.4.21 + adm-zip: 0.5.16 + android-versions: 1.9.0 + colors: 1.4.0 + debug: 4.4.0 + fast-glob: 3.3.2 + find-cache-dir: 3.3.2 + fs-extra: 10.1.0 + graphlib: 2.1.8 + jsonc-parser: 3.3.1 + lodash: 4.17.21 + md5-file: 5.0.0 + object-hash: 3.0.0 + semver: 7.6.3 + source-map: 0.7.4 + source-map-js: 1.2.1 + transitivePeerDependencies: + - rollup + - supports-color + '@dcloudio/uni-vue-devtools@3.0.0-4020420240722002(@vueuse/core@11.1.0(vue@3.4.21(typescript@5.5.4)))(postcss@8.4.47)(rollup@4.24.1)(vue@3.4.21(typescript@5.5.4))': dependencies: '@dcloudio/uni-cli-shared': 3.0.0-4020420240722002(@vueuse/core@11.1.0(vue@3.4.21(typescript@5.5.4)))(postcss@8.4.47)(rollup@4.24.1)(vue@3.4.21(typescript@5.5.4)) @@ -7067,6 +7175,33 @@ snapshots: - vue - webpack-sources + '@dcloudio/uts-darwin-arm64@3.0.0-4050520250307001': + optional: true + + '@dcloudio/uts-darwin-x64@3.0.0-4050520250307001': + optional: true + + '@dcloudio/uts-linux-x64-gnu@3.0.0-4050520250307001': + optional: true + + '@dcloudio/uts-linux-x64-musl@3.0.0-4050520250307001': + optional: true + + '@dcloudio/uts-win32-ia32-msvc@3.0.0-4050520250307001': + optional: true + + '@dcloudio/uts-win32-x64-msvc@3.0.0-4050520250307001': + optional: true + + '@dcloudio/uts@3.0.0-4050520250307001': + optionalDependencies: + '@dcloudio/uts-darwin-arm64': 3.0.0-4050520250307001 + '@dcloudio/uts-darwin-x64': 3.0.0-4050520250307001 + '@dcloudio/uts-linux-x64-gnu': 3.0.0-4050520250307001 + '@dcloudio/uts-linux-x64-musl': 3.0.0-4050520250307001 + '@dcloudio/uts-win32-ia32-msvc': 3.0.0-4050520250307001 + '@dcloudio/uts-win32-x64-msvc': 3.0.0-4050520250307001 + '@dcloudio/vite-plugin-uni@3.0.0-4050520250307001(@vueuse/core@11.1.0(vue@3.4.21(typescript@5.5.4)))(postcss@8.4.47)(rollup@4.24.1)(vite@5.2.8(@types/node@20.17.1)(sass@1.79.6)(terser@5.36.0))(vue@3.4.21(typescript@5.5.4))': dependencies: '@babel/core': 7.26.0 @@ -7325,7 +7460,7 @@ snapshots: '@antfu/install-pkg': 0.4.1 '@antfu/utils': 0.7.10 '@iconify/types': 2.0.0 - debug: 4.3.7 + debug: 4.4.0 kolorist: 1.8.0 local-pkg: 0.5.0 mlly: 1.7.2 @@ -8740,6 +8875,10 @@ snapshots: alien-signals@0.2.0: {} + android-versions@1.9.0: + dependencies: + semver: 7.6.3 + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -9071,6 +9210,8 @@ snapshots: colorjs.io@0.5.2: {} + colors@1.4.0: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -9079,6 +9220,8 @@ snapshots: comment-parser@1.4.1: {} + commondir@1.0.1: {} + compare-versions@3.6.0: {} concat-map@0.0.1: {} @@ -9788,6 +9931,12 @@ snapshots: transitivePeerDependencies: - supports-color + find-cache-dir@3.3.2: + dependencies: + commondir: 1.0.1 + make-dir: 3.1.0 + pkg-dir: 4.2.0 + find-up-simple@1.0.0: {} find-up@4.1.0: @@ -9915,6 +10064,10 @@ snapshots: graphemer@1.4.0: {} + graphlib@2.1.8: + dependencies: + lodash: 4.17.21 + gzip-size@6.0.0: dependencies: duplexer: 0.1.2 @@ -10662,6 +10815,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + make-dir@4.0.0: dependencies: semver: 7.6.3 @@ -10670,6 +10827,8 @@ snapshots: dependencies: tmpl: 1.0.5 + md5-file@5.0.0: {} + mdast-util-from-markdown@0.8.5: dependencies: '@types/mdast': 3.0.15 @@ -10841,6 +11000,8 @@ snapshots: object-assign@4.1.1: {} + object-hash@3.0.0: {} + object-inspect@1.13.2: {} ofetch@1.4.1: diff --git a/src/components.d.ts b/src/components.d.ts index e2dde5b..6e3077b 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -13,21 +13,5 @@ declare module 'vue' { PrivacyModel: typeof import('./components/PrivacyModel.vue')['default'] QRcode: typeof import('./components/QRcode.vue')['default'] VipBanner: typeof import('./components/VipBanner.vue')['default'] - WdButton: typeof import('wot-design-uni/components/wd-button/wd-button.vue')['default'] - WdCellGroup: typeof import('wot-design-uni/components/wd-cell-group/wd-cell-group.vue')['default'] - WdCheckbox: typeof import('wot-design-uni/components/wd-checkbox/wd-checkbox.vue')['default'] - WdColPicker: typeof import('wot-design-uni/components/wd-col-picker/wd-col-picker.vue')['default'] - WdForm: typeof import('wot-design-uni/components/wd-form/wd-form.vue')['default'] - WdFormItem: typeof import('wot-design-uni/components/wd-form-item/wd-form-item.vue')['default'] - WdIcon: typeof import('wot-design-uni/components/wd-icon/wd-icon.vue')['default'] - WdInput: typeof import('wot-design-uni/components/wd-input/wd-input.vue')['default'] - WdLoadmore: typeof import('wot-design-uni/components/wd-loadmore/wd-loadmore.vue')['default'] - WdNavbar: typeof import('wot-design-uni/components/wd-navbar/wd-navbar.vue')['default'] - WdPicker: typeof import('wot-design-uni/components/wd-picker/wd-picker.vue')['default'] - WdPopup: typeof import('wot-design-uni/components/wd-popup/wd-popup.vue')['default'] - WdProgress: typeof import('wot-design-uni/components/wd-progress/wd-progress.vue')['default'] - WdTabbar: typeof import('wot-design-uni/components/wd-tabbar/wd-tabbar.vue')['default'] - WdTabbarItem: typeof import('wot-design-uni/components/wd-tabbar-item/wd-tabbar-item.vue')['default'] - WdToast: typeof import('wot-design-uni/components/wd-toast/wd-toast.vue')['default'] } } diff --git a/src/manifest.json b/src/manifest.json index 9796327..a9e38fb 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -120,11 +120,11 @@ "description": "Web视图插件,支持在App内打开网页", "platforms": { "android": { - "appid": "", + "appid": "__UNI_WEBVIEW_ANDROID", "autostart": false }, "ios": { - "appid": "", + "appid": "__UNI_WEBVIEW_IOS", "autostart": false } } diff --git a/src/pages/index.vue b/src/pages/index.vue index 317ac87..5784bc2 100644 --- a/src/pages/index.vue +++ b/src/pages/index.vue @@ -10,9 +10,8 @@ import indexIcon7 from '/static/image/index_icon_7.png' // 引入 WebView 插件 // @ts-ignore -import WebViewPlugin from '@/utssdk/webview'; +import { urlLaunch } from '@/uni_modules/lz-url_launch'; -const webViewPlugin = new WebViewPlugin(); const services = ref( [ @@ -80,17 +79,12 @@ function toInquire(name) { console.log('使用服务:', name); // 判断环境,在 App 环境中使用 UTS 插件打开,非 App 环境使用普通导航 - // #ifdef APP-PLUS try { // 构建服务的URL - const serviceUrl = `https://www.quannengcha.com/inquire/${name}`; - // 使用 UTS 插件打开网页 - webViewPlugin.openUrl(serviceUrl); + urlLaunch(`https://www.quannengcha.com/inquire/${name}`) } catch (error) { console.error('打开URL失败:', error); } - // #endif - } function toHistory() { @@ -119,11 +113,7 @@ function toHelp() { - + @@ -160,14 +150,13 @@ function toHelp() { - - + + 我的历史查询记录 @@ -198,8 +181,7 @@ function toHelp() { + class="mb-16 mt-6 h-12 w-full flex items-center justify-center rounded-3xl from-blue-500 to-sky-400 bg-gradient-to-b text-center text-lg text-white line-height-12 shadow-xl"> 全能查邀您共赢,共享数据新价值! @@ -216,12 +198,10 @@ function toHelp() { } - -{ +{ "layout": "home", "style": { "navigationBarTextStyle": "white", "transparentTitle": "always" } -} - +} diff --git a/src/uni_modules/lz-url_launch/changelog.md b/src/uni_modules/lz-url_launch/changelog.md new file mode 100644 index 0000000..e69de29 diff --git a/src/uni_modules/lz-url_launch/package.json b/src/uni_modules/lz-url_launch/package.json new file mode 100644 index 0000000..4eb775f --- /dev/null +++ b/src/uni_modules/lz-url_launch/package.json @@ -0,0 +1,83 @@ +{ + "id": "lz-url_launch", + "displayName": "lz-url_launch", + "version": "1.0.0", + "description": "lz-url_launch", + "keywords": [ + "lz-url_launch" +], + "repository": "", + "engines": { + "HBuilderX": "^3.6.8" + }, + "dcloudext": { + "type": "uts", + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "", + "data": "", + "permissions": "" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "u", + "aliyun": "u", + "alipay": "u" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-android": "u", + "app-ios": "y", + "app-harmony": "u" + }, + "H5-mobile": { + "Safari": "u", + "Android Browser": "u", + "微信浏览器(Android)": "u", + "QQ浏览器(Android)": "u" + }, + "H5-pc": { + "Chrome": "u", + "IE": "u", + "Edge": "u", + "Firefox": "u", + "Safari": "u" + }, + "小程序": { + "微信": "u", + "阿里": "u", + "百度": "u", + "字节跳动": "u", + "QQ": "u", + "钉钉": "u", + "快手": "u", + "飞书": "u", + "京东": "u" + }, + "快应用": { + "华为": "u", + "联盟": "u" + } + } + } + } +} \ No newline at end of file diff --git a/src/uni_modules/lz-url_launch/readme.md b/src/uni_modules/lz-url_launch/readme.md new file mode 100644 index 0000000..5390aec --- /dev/null +++ b/src/uni_modules/lz-url_launch/readme.md @@ -0,0 +1,7 @@ +# lz-url_launch +### 开发文档 +[UTS 语法](https://uniapp.dcloud.net.cn/tutorial/syntax-uts.html) +[UTS API插件](https://uniapp.dcloud.net.cn/plugin/uts-plugin.html) +[UTS uni-app兼容模式组件](https://uniapp.dcloud.net.cn/plugin/uts-component.html) +[UTS 标准模式组件](https://doc.dcloud.net.cn/uni-app-x/plugin/uts-vue-component.html) +[Hello UTS](https://gitcode.net/dcloud/hello-uts) \ No newline at end of file diff --git a/src/uni_modules/lz-url_launch/utssdk/app-ios/config.json b/src/uni_modules/lz-url_launch/utssdk/app-ios/config.json new file mode 100644 index 0000000..3312828 --- /dev/null +++ b/src/uni_modules/lz-url_launch/utssdk/app-ios/config.json @@ -0,0 +1,3 @@ +{ + "deploymentTarget": "12" +} diff --git a/src/uni_modules/lz-url_launch/utssdk/app-ios/index.uts b/src/uni_modules/lz-url_launch/utssdk/app-ios/index.uts new file mode 100644 index 0000000..1794111 --- /dev/null +++ b/src/uni_modules/lz-url_launch/utssdk/app-ios/index.uts @@ -0,0 +1,11 @@ +import { DispatchQueue } from "UIKit"; +import { SFSafariViewController } from "SafariServices"; +import { UrlLaunch } from "../interface"; + +export const urlLaunch : UrlLaunch = function (url : string) : void { + let urlObject = URL(string = url); + let vc = SFSafariViewController(url = urlObject!) + DispatchQueue.main.async(execute = () : void => { + UTSiOS.getCurrentViewController().present(vc, animated = true); + }); +} \ No newline at end of file diff --git a/src/uni_modules/lz-url_launch/utssdk/interface.uts b/src/uni_modules/lz-url_launch/utssdk/interface.uts new file mode 100644 index 0000000..8ae2374 --- /dev/null +++ b/src/uni_modules/lz-url_launch/utssdk/interface.uts @@ -0,0 +1,6 @@ +/** + * interface.uts + * uts插件接口定义文件,按规范定义接口文件可以在HBuilderX中更好的做到语法提示 + */ + +export type UrlLaunch = (url : string) => void diff --git a/src/uni_modules/lz-url_launch/utssdk/unierror.uts b/src/uni_modules/lz-url_launch/utssdk/unierror.uts new file mode 100644 index 0000000..ee086ef --- /dev/null +++ b/src/uni_modules/lz-url_launch/utssdk/unierror.uts @@ -0,0 +1,39 @@ +/* 此规范为 uni 规范,可以按照自己的需要选择是否实现 */ +import { MyApiErrorCode, MyApiFail } from "./interface.uts" +/** + * 错误主题 + * 注意:错误主题一般为插件名称,每个组件不同,需要使用时请更改。 + * [可选实现] + */ +export const UniErrorSubject = 'uts-api'; + + +/** + * 错误信息 + * @UniError + * [可选实现] + */ +export const MyAPIErrors : Map = new Map([ + /** + * 错误码及对应的错误信息 + */ + [9010001, 'custom error mseeage1'], + [9010002, 'custom error mseeage2'], +]); + + +/** + * 错误对象实现 + */ +export class MyApiFailImpl extends UniError implements MyApiFail { + + /** + * 错误对象构造函数 + */ + constructor(errCode : MyApiErrorCode) { + super(); + this.errSubject = UniErrorSubject; + this.errCode = errCode; + this.errMsg = MyAPIErrors.get(errCode) ?? ""; + } +} diff --git a/utssdk/webview/package.json b/utssdk/webview/package.json deleted file mode 100644 index f27fd5a..0000000 --- a/utssdk/webview/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "webview", - "version": "1.0.0", - "description": "Web视图插件,支持在App内打开网页", - "main": "src/index.uts" -} diff --git a/utssdk/webview/src/android-declarations.uts b/utssdk/webview/src/android-declarations.uts deleted file mode 100644 index 2606a57..0000000 --- a/utssdk/webview/src/android-declarations.uts +++ /dev/null @@ -1,44 +0,0 @@ -// #ifdef APP-ANDROID -/** - * Android平台声明文件 - * 用于声明 androidx.browser.customtabs 模块和相关类 - */ - -declare namespace UTSAndroid { - // 获取应用上下文 - function getAppContext(): android.content.Context; - - namespace android.content { - class Context { - startActivity(intent: Intent): void; - } - - class Intent { - constructor(action: string, uri: android.net.Uri); - static readonly ACTION_VIEW: string; - addFlags(flags: number): Intent; - static readonly FLAG_ACTIVITY_NEW_TASK: number; - } - } - - namespace android.net { - class Uri { - static parse(uriString: string): Uri; - } - } - - namespace androidx.browser.customtabs { - class CustomTabsIntent { - launchUrl(context: android.content.Context, uri: android.net.Uri): void; - - static class Builder { - constructor(); - build(): CustomTabsIntent; - setToolbarColor(color: number): Builder; - setShowTitle(showTitle: boolean): Builder; - } - } - } -} - -// #endif diff --git a/utssdk/webview/src/index.uts b/utssdk/webview/src/index.uts deleted file mode 100644 index 5336172..0000000 --- a/utssdk/webview/src/index.uts +++ /dev/null @@ -1,98 +0,0 @@ -/** - * WebView插件 - 用于在App内打开网页 - * 支持iOS和Android平台 - */ - -// 定义插件接口 -export default class WebViewPlugin { - /** - * 在App内打开网页 - * @param url 要打开的URL - */ - openUrl(url: string): void { - if (!url || url.trim() === '') { - console.error('URL不能为空'); - return; - } - - // 根据平台调用不同的实现 - // #ifdef APP-IOS - this.openUrlInIOS(url); - // #endif - - // #ifdef APP-ANDROID - this.openUrlInAndroid(url); - // #endif - - // #ifndef APP-PLUS - // 非App环境下,直接使用uni.navigateTo打开web-view页面 - uni.navigateTo({ - url: `/pages/webview/webview?url=${encodeURIComponent(url)}` - }); - // #endif - } - - // iOS平台实现 - // #ifdef APP-IOS - private openUrlInIOS(url: string): void { - try { - const { DispatchQueue } = UTSiOS.UIKit; - const { SFSafariViewController } = UTSiOS.SafariServices; - - const urlObject = UTSiOS.URL.URLWithString(url); - if (!urlObject) { - console.error('无效的URL'); - return; - } - - const vc = new SFSafariViewController(url: urlObject); - - // 在主线程上执行UI操作 - DispatchQueue.main.async((): void => { - UTSiOS.getCurrentViewController().presentViewController(vc, animated: true, completion: null); - }); - } catch (error) { - console.error('iOS打开URL失败:', error); - // 失败后使用系统浏览器打开 - plus.runtime.openURL(url); - } - } - // #endif - - // Android平台实现 - // #ifdef APP-ANDROID - private openUrlInAndroid(url: string): void { - try { - const Intent = UTSAndroid.android.content.Intent; - const Uri = UTSAndroid.android.net.Uri; - - // 创建CustomTabsIntent - const CustomTabsIntent = UTSAndroid.androidx.browser.customtabs.CustomTabsIntent; - const builder = new CustomTabsIntent.Builder(); - const customTabsIntent = builder.build(); - - // 打开URL - const uri = Uri.parse(url); - const context = UTSAndroid.getAppContext(); - - customTabsIntent.launchUrl(context, uri); - } catch (error) { - console.error('Android打开URL失败:', error); - try { - // 如果CustomTabs不可用,尝试使用WebView Activity - const Intent = UTSAndroid.android.content.Intent; - const Uri = UTSAndroid.android.net.Uri; - - const intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - - const context = UTSAndroid.getAppContext(); - context.startActivity(intent); - } catch (fallbackError) { - // 所有方法都失败,使用plus API - plus.runtime.openURL(url); - } - } - } - // #endif -} diff --git a/utssdk/webview/src/ios-declarations.uts b/utssdk/webview/src/ios-declarations.uts deleted file mode 100644 index 4e0f6b3..0000000 --- a/utssdk/webview/src/ios-declarations.uts +++ /dev/null @@ -1,48 +0,0 @@ -// #ifdef APP-IOS -/** - * iOS平台声明文件 - * 用于声明 SafariServices 模块和相关类 - */ - -declare namespace UTSiOS { - namespace SafariServices { - /** - * SFSafariViewController 类 - * 用于在App内显示网页内容 - */ - class SFSafariViewController { - constructor(url: UTSiOS.URL); - - // 设置配置 - static configuration: any; - - // 设置代理 - setDelegate(delegate: any): void; - - // 设置首选的条形颜色 - setPreferredBarTintColor(color: any): void; - - // 设置首选的控制颜色 - setPreferredControlTintColor(color: any): void; - - // 设置模态展示样式 - setModalPresentationStyle(style: number): void; - } - } - - // URL类 - class URL { - static URLWithString(string: string): URL; - } - - namespace UIKit { - class DispatchQueue { - static readonly main: DispatchQueue; - async(closure: () => void): void; - } - } - - // 获取当前视图控制器 - function getCurrentViewController(): any; -} -// #endif diff --git a/utssdk/webview/tsconfig.json b/utssdk/webview/tsconfig.json deleted file mode 100644 index b9c99d8..0000000 --- a/utssdk/webview/tsconfig.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "compilerOptions": { - "target": "esnext", - "module": "esnext", - "strict": true, - "jsx": "preserve", - "moduleResolution": "node", - "esModuleInterop": true - } -}