mp-weixin-back 0.0.17 → 0.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +599 -482
- package/dist/index.d.cts +32 -1
- package/dist/index.d.mts +32 -1
- package/dist/index.d.ts +32 -1
- package/dist/index.mjs +599 -482
- package/package.json +10 -4
- package/readme.md +50 -18
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mp-weixin-back",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.18",
|
|
5
5
|
"description": "Vite plugin to intercept back navigation (gesture back & navbar back) in WeChat miniprogram (mp-weixin) built with uni-app + Vue 3. 监听微信小程序的手势返回和页面默认导航栏的返回",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
7
7
|
"module": "dist/index.mjs",
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
"url": "git+https://github.com/DBAAZzz/mp-weixin-back.git"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@babel/generator": "^7.26.2",
|
|
54
53
|
"@babel/parser": "^7.26.2",
|
|
55
54
|
"@babel/traverse": "^7.25.9",
|
|
56
55
|
"ast-kit": "^1.3.1",
|
|
@@ -66,22 +65,29 @@
|
|
|
66
65
|
"*": "prettier --write"
|
|
67
66
|
},
|
|
68
67
|
"devDependencies": {
|
|
68
|
+
"@babel/types": "^7.26.0",
|
|
69
69
|
"@changesets/cli": "^2.29.8",
|
|
70
|
-
"@types/
|
|
70
|
+
"@types/babel__traverse": "^7.20.6",
|
|
71
71
|
"@types/node": "^22.9.3",
|
|
72
72
|
"@vitejs/plugin-vue": "^5.2.0",
|
|
73
|
+
"@vue/compiler-sfc": "^3.5.13",
|
|
73
74
|
"@vue/test-utils": "^2.4.6",
|
|
74
75
|
"happy-dom": "^15.11.6",
|
|
75
76
|
"typescript": "^5.7.2",
|
|
76
77
|
"unbuild": "^2.0.0",
|
|
78
|
+
"vite": "^5.4.11",
|
|
77
79
|
"vitest": "^2.1.5",
|
|
78
80
|
"vue": "^3.5.13"
|
|
79
81
|
},
|
|
80
82
|
"scripts": {
|
|
81
83
|
"build": "unbuild",
|
|
82
84
|
"test": "vitest",
|
|
85
|
+
"test:run": "vitest run",
|
|
86
|
+
"typecheck": "tsc --noEmit",
|
|
87
|
+
"check-publish": "node scripts/check-publish.mjs && pnpm publish --dry-run --no-git-checks",
|
|
83
88
|
"changeset": "changeset",
|
|
84
89
|
"version": "changeset version",
|
|
85
|
-
"release": "pnpm build &&
|
|
90
|
+
"release": "pnpm run version && pnpm typecheck && pnpm test:run && pnpm build && pnpm check-publish && pnpm publish --access public --no-git-checks",
|
|
91
|
+
"release:dry": "pnpm build && pnpm check-publish"
|
|
86
92
|
}
|
|
87
93
|
}
|
package/readme.md
CHANGED
|
@@ -54,12 +54,19 @@ export default defineConfig({
|
|
|
54
54
|
debug: false, // 调试模式,默认为 false
|
|
55
55
|
onPageBack: ({ page }) => {
|
|
56
56
|
console.log('返回事件触发,当前页面:', page)
|
|
57
|
-
}, //
|
|
57
|
+
}, // 全局钩子,任意页面触发时执行。⚠️ 该函数会被序列化注入页面,必须自包含(不能引用 vite.config.ts 中的变量或 import 的模块)
|
|
58
|
+
pageContainer: {
|
|
59
|
+
zIndex: 1, // 注入的 page-container 的 z-index,默认 1
|
|
60
|
+
overlay: false, // 是否显示遮罩,默认 false
|
|
61
|
+
duration: false, // 动画时长(ms),默认 false 关闭
|
|
62
|
+
},
|
|
58
63
|
}),
|
|
59
64
|
],
|
|
60
65
|
})
|
|
61
66
|
```
|
|
62
67
|
|
|
68
|
+
> 插件会自动探测 `src/pages.json`(CLI 项目)或根目录 `pages.json`(HBuilderX 项目);多端构建时仅在 `UNI_PLATFORM=mp-weixin` 下生效,其他平台自动降级为 no-op。
|
|
69
|
+
|
|
63
70
|
## 🚀 快速开始
|
|
64
71
|
|
|
65
72
|
### 基本使用
|
|
@@ -133,6 +140,8 @@ onPageBack(
|
|
|
133
140
|
| `frequency` | `number` | `1` | 阻止次数 |
|
|
134
141
|
| `initialValue` | `boolean` | `true` | 是否立即启用监听(设为 `false` 时需手动调用 `activeMpBack()`) |
|
|
135
142
|
|
|
143
|
+
> ⚠️ 这些配置在**构建期静态读取**,必须直接写布尔/数字字面量(如 `{ frequency: 3 }`),不能传变量或表达式。需要运行时动态控制时请使用 `activeMpBack()` / `inactiveMpBack()`。
|
|
144
|
+
|
|
136
145
|
### 辅助方法
|
|
137
146
|
|
|
138
147
|
#### `activeMpBack()`
|
|
@@ -167,33 +176,55 @@ onPageBack(
|
|
|
167
176
|
| ---------------- | ------------------------------------------- | ------- | -------------------------- |
|
|
168
177
|
| `preventDefault` | `boolean` | `false` | 全局阻止默认返回行为 |
|
|
169
178
|
| `frequency` | `number` | `1` | 全局阻止次数 |
|
|
179
|
+
| `initialValue` | `boolean` | `true` | 全局是否立即启用监听 |
|
|
170
180
|
| `debug` | `boolean` | `false` | 开发模式下开启调试日志 |
|
|
171
|
-
| `onPageBack` | `(params: { page: string }) => void`
|
|
172
|
-
|
|
173
|
-
## 🎯 选项式 API 支持(未完善)
|
|
181
|
+
| `onPageBack` | `(params: { page: string \| null }) => void` | — | 全局回调,任意页面触发执行。必须自包含(会被序列化注入页面,闭包变量运行时不可用,检测到时构建期会警告) |
|
|
182
|
+
| `pageContainer` | `{ zIndex?, overlay?, duration? }` | 见上文 | 注入的 page-container 组件属性 |
|
|
174
183
|
|
|
175
|
-
|
|
184
|
+
## 🎯 选项式 API 支持
|
|
176
185
|
|
|
177
|
-
在 Vue 组件的选项对象中直接定义 onPageBack
|
|
186
|
+
在 Vue 组件的选项对象中直接定义 `onPageBack`,支持三种写法:
|
|
178
187
|
|
|
179
188
|
```html
|
|
180
|
-
<template>
|
|
181
|
-
<div class="container">
|
|
182
|
-
<div>当前页面内容</div>
|
|
183
|
-
</div>
|
|
184
|
-
</template>
|
|
185
|
-
|
|
186
189
|
<script>
|
|
187
190
|
export default {
|
|
188
|
-
//
|
|
191
|
+
// 写法一:方法简写(使用 vite 中的全局配置)
|
|
189
192
|
onPageBack() {
|
|
190
193
|
console.log('检测到返回操作')
|
|
191
|
-
// 业务逻辑处理
|
|
192
194
|
},
|
|
193
195
|
}
|
|
194
196
|
</script>
|
|
195
197
|
```
|
|
196
198
|
|
|
199
|
+
```html
|
|
200
|
+
<script>
|
|
201
|
+
export default {
|
|
202
|
+
// 写法二:函数属性
|
|
203
|
+
onPageBack: function () {
|
|
204
|
+
console.log('检测到返回操作')
|
|
205
|
+
},
|
|
206
|
+
}
|
|
207
|
+
</script>
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
```html
|
|
211
|
+
<script>
|
|
212
|
+
export default {
|
|
213
|
+
// 写法三:对象写法,支持页面级配置(与 composition API 对齐)
|
|
214
|
+
onPageBack: {
|
|
215
|
+
preventDefault: true,
|
|
216
|
+
frequency: 3,
|
|
217
|
+
initialValue: true,
|
|
218
|
+
handler() {
|
|
219
|
+
console.log('检测到返回操作')
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
}
|
|
223
|
+
</script>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
回调中的 `this` 指向组件实例,可直接访问 `data` / `methods`。
|
|
227
|
+
|
|
197
228
|
## 🛠 类型支持
|
|
198
229
|
|
|
199
230
|
### 类型声明配置
|
|
@@ -227,7 +258,8 @@ onPageBack(
|
|
|
227
258
|
|
|
228
259
|
### Q3: 不生效怎么排查?
|
|
229
260
|
|
|
230
|
-
1. 确认 `src/pages.json` 存在且格式正确
|
|
231
|
-
2.
|
|
232
|
-
3.
|
|
233
|
-
4.
|
|
261
|
+
1. 确认 `src/pages.json` 或根目录 `pages.json` 存在且格式正确
|
|
262
|
+
2. 确认是 `pages.json` 中注册的页面级 `.vue` 文件(组件中使用不会注入,dev 下运行时会有 console 警告)
|
|
263
|
+
3. 多端项目确认构建平台为 `mp-weixin`(其他平台插件自动禁用)
|
|
264
|
+
4. 开启 `debug: true` 查看插件日志
|
|
265
|
+
5. 确认 `@vue/compiler-sfc` 已安装:`pnpm add -D @vue/compiler-sfc`
|