@zfqh/uniapp 0.1.15 → 0.2.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,25 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.2.0](http://10.10.10.16/caoben/front-end/compare/@zfqh/uniapp@0.1.16...@zfqh/uniapp@0.2.0) (2026-06-22)
7
+
8
+
9
+ ### Features
10
+
11
+ * url调整为webviewUrl ([484e986](http://10.10.10.16/caoben/front-end/commits/484e986809cf4a434252036a0b9ef7703a88bebb))
12
+
13
+
14
+
15
+
16
+
17
+ ## [0.1.16](http://10.10.10.16/caoben/front-end/compare/@zfqh/uniapp@0.1.15...@zfqh/uniapp@0.1.16) (2026-06-22)
18
+
19
+ **Note:** Version bump only for package @zfqh/uniapp
20
+
21
+
22
+
23
+
24
+
6
25
  ## [0.1.15](http://10.10.10.16/caoben/front-end/compare/@zfqh/uniapp@0.1.14...@zfqh/uniapp@0.1.15) (2026-06-22)
7
26
 
8
27
  **Note:** Version bump only for package @zfqh/uniapp
@@ -4,13 +4,15 @@ webview 承载页 mixin。发布路径:`@zfqh/uniapp/lib/mixins/webview`
4
4
 
5
5
  | 项 | 说明 |
6
6
  | --- | --- |
7
- | `data shareData/params/url/changed/webview` | 维护承载页参数、URL 和分享状态。 |
7
+ | `data shareData/params/webviewUrl/changed/webview` | 维护承载页参数、URL 和分享状态。 |
8
8
  | `computed queryString` | 把登录信息、app、platform 合并为 webview query。 |
9
9
  | `method onMessage(e)` | 处理 SAVE_IMAGE、CHNAGE_TITLE、SHARE_PAGE、GET_LOCATION、OPEN_LOCATION 等宿主消息。 |
10
10
  | `method postMessage(data)` | 向 iframe/App webview 子页面发送 WEBVIEW_MESSAGE。 |
11
11
  | `method initUrl()` | 根据 params.url、link、web 配置生成实际 webview src。 |
12
12
  | `onLoad(params)` | 保存初始 params。 |
13
- | `onShow()` | 参数变化后重新生成 url,并在 H5 非 webview 环境监听 window.onmessage。 |
13
+ | `onShow()` | 参数变化后重新生成 url。 |
14
+ | `onReady()` | H5 非 webview 环境通过 `window.addEventListener('message')` 监听宿主消息。 |
15
+ | `onUnload()` | 移除 H5 message 监听,避免内存泄漏。 |
14
16
 
15
17
  ## 基本使用
16
18
 
@@ -2,7 +2,7 @@ declare const _default: {
2
2
  data(): {
3
3
  shareData: {};
4
4
  params: {};
5
- url: string;
5
+ webviewUrl: string;
6
6
  changed: boolean;
7
7
  webview: boolean;
8
8
  };
@@ -20,5 +20,7 @@ declare const _default: {
20
20
  };
21
21
  onLoad(params: any): void;
22
22
  onShow(): void;
23
+ onReady(): void;
24
+ onUnload(): void;
23
25
  };
24
26
  export default _default;
@@ -12,7 +12,7 @@ export default {
12
12
  return {
13
13
  shareData: {},
14
14
  params: {},
15
- url: '',
15
+ webviewUrl: '',
16
16
  changed: true,
17
17
  webview: true,
18
18
  };
@@ -181,7 +181,7 @@ export default {
181
181
  title,
182
182
  });
183
183
  }
184
- this.url = src;
184
+ this.webviewUrl = src;
185
185
  },
186
186
  },
187
187
  onLoad(params) {
@@ -206,9 +206,11 @@ export default {
206
206
  this.changed = false;
207
207
  }
208
208
  });
209
+ },
210
+ onReady() {
209
211
  // #ifdef H5
210
212
  if (!IS_WEBVIEW_ENV) {
211
- window.onmessage = (e) => {
213
+ this.__onWindowMessage = (e) => {
212
214
  try {
213
215
  if (e.data.type === 'WEBVIEW_APP_MESSAGE') {
214
216
  this.onMessage({ detail: { data: [e.data.data] } });
@@ -216,6 +218,15 @@ export default {
216
218
  }
217
219
  catch (e) { }
218
220
  };
221
+ window.addEventListener('message', this.__onWindowMessage);
222
+ }
223
+ // #endif
224
+ },
225
+ onUnload() {
226
+ // #ifdef H5
227
+ if (this.__onWindowMessage) {
228
+ window.removeEventListener('message', this.__onWindowMessage);
229
+ this.__onWindowMessage = null;
219
230
  }
220
231
  // #endif
221
232
  },
@@ -1,52 +1,54 @@
1
- import { TYPES } from './consts';
1
+ import { TYPES, IS_WEBVIEW_ENV } from './consts';
2
2
  // #ifdef H5
3
- window.addEventListener('message', (e) => {
4
- try {
5
- if (e.data.type === TYPES.MESSAGE.WEBVIEW_MESSAGE) {
6
- uni.$emit(TYPES.MESSAGE.WEBVIEW_MESSAGE, e.data.data);
7
- const { type, payload } = e.data.data;
8
- switch (type) {
9
- case TYPES.MESSAGE.LOGIN: {
10
- const { accessToken, referrer } = payload;
11
- uni.$store.commit('setLoginInfo', { accessToken });
12
- uni.$store.dispatch('getInfo');
13
- if (referrer) {
14
- // 必须使用reLaunch,否则跳转可能无效
15
- uni.reLaunch({
16
- url: referrer,
17
- });
3
+ if (IS_WEBVIEW_ENV) {
4
+ window.addEventListener('message', (e) => {
5
+ try {
6
+ if (e.data.type === TYPES.MESSAGE.WEBVIEW_MESSAGE) {
7
+ uni.$emit(TYPES.MESSAGE.WEBVIEW_MESSAGE, e.data.data);
8
+ const { type, payload } = e.data.data;
9
+ switch (type) {
10
+ case TYPES.MESSAGE.LOGIN: {
11
+ const { accessToken, referrer } = payload;
12
+ uni.$store.commit('setLoginInfo', { accessToken });
13
+ uni.$store.dispatch('getInfo');
14
+ if (referrer) {
15
+ // 必须使用reLaunch,否则跳转可能无效
16
+ uni.reLaunch({
17
+ url: referrer,
18
+ });
19
+ }
20
+ break;
18
21
  }
19
- break;
20
- }
21
- case TYPES.MESSAGE.GET_LOCATION: {
22
- if (uni.getLocationCallback) {
23
- Object.keys({ ...payload, complete: undefined }).forEach((key) => {
24
- if (uni.getLocationCallback && uni.getLocationCallback[key]) {
25
- uni.getLocationCallback[key](payload[key]);
26
- }
27
- });
28
- delete uni.getLocationCallback;
22
+ case TYPES.MESSAGE.GET_LOCATION: {
23
+ if (uni.getLocationCallback) {
24
+ Object.keys({ ...payload, complete: undefined }).forEach((key) => {
25
+ if (uni.getLocationCallback && uni.getLocationCallback[key]) {
26
+ uni.getLocationCallback[key](payload[key]);
27
+ }
28
+ });
29
+ delete uni.getLocationCallback;
30
+ }
31
+ break;
29
32
  }
30
- break;
31
- }
32
- case TYPES.MESSAGE.OPEN_LOCATION: {
33
- if (uni.openLocationCallback) {
34
- Object.keys({ ...payload, complete: undefined }).forEach((key) => {
35
- if (uni.openLocationCallback && uni.openLocationCallback[key]) {
36
- uni.openLocationCallback[key](payload[key]);
37
- }
38
- });
39
- delete uni.openLocationCallback;
33
+ case TYPES.MESSAGE.OPEN_LOCATION: {
34
+ if (uni.openLocationCallback) {
35
+ Object.keys({ ...payload, complete: undefined }).forEach((key) => {
36
+ if (uni.openLocationCallback && uni.openLocationCallback[key]) {
37
+ uni.openLocationCallback[key](payload[key]);
38
+ }
39
+ });
40
+ delete uni.openLocationCallback;
41
+ }
42
+ break;
43
+ }
44
+ case TYPES.MESSAGE.HIDE_LOADING: {
45
+ uni.hideLoading();
46
+ break;
40
47
  }
41
- break;
42
- }
43
- case TYPES.MESSAGE.HIDE_LOADING: {
44
- uni.hideLoading();
45
- break;
46
48
  }
47
49
  }
48
50
  }
49
- }
50
- catch (e) { }
51
- });
51
+ catch (e) { }
52
+ });
53
+ }
52
54
  // #endif
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zfqh/uniapp",
3
- "version": "0.1.15",
3
+ "version": "0.2.0",
4
4
  "description": "uniapp公共模块",
5
5
  "author": "yinjiazeng@163.com",
6
6
  "license": "MIT",
@@ -46,5 +46,5 @@
46
46
  "@types/qs": "^6.9.16",
47
47
  "@types/url-parse": "^1.4.11"
48
48
  },
49
- "gitHead": "b926cc2bedd57fb55c2ad7ab90b9c5c88148c39a"
49
+ "gitHead": "7208661cd53f327d8164c7aa678138fa80ebf893"
50
50
  }