xctc-utils 1.6.36 → 1.6.38

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/README.md CHANGED
@@ -25,6 +25,38 @@ all:boolean 为true时删除调用方法的所有缓存,否则只删除当前
25
25
  删除永久缓存: useUtils.removeLocalStorage(key,all)
26
26
  ```
27
27
 
28
+ ### iframe
29
+ #### 父级页面方法调用
30
+
31
+ ```
32
+ id string iframe子页面对应的id属性
33
+ keys string 微信分享链接携带的state本地缓存值,非必传
34
+ useUtils.iframe.initParentDataToIframe(id:string,keys?:string)
35
+ ```
36
+ ##### 父级页面获取到子页面触发的数据
37
+ ```
38
+ cb回调函数,返回子页面传递的数据
39
+ useUtils.iframe.updateIframeReceiveData( cb:any )
40
+ ```
41
+ ##### 父页面发送数据到 子页面
42
+ ```
43
+ id iframe子页面对应的id属性
44
+ data 传递的数据,函数内对data进行序列化处理
45
+ useUtils.iframe.sendParentMessage( id:string,data:any )
46
+ ```
47
+ #### 子页面方法调用
48
+ ##### 子页面获取到 主页面 传递的数据
49
+ ```
50
+ cb回调函数,返回父页面传递的数据
51
+ useUtils.iframe.updateParentReceiveData(cb)
52
+ ```
53
+ ##### 子页面 发送数据到 主页面
54
+ ```
55
+ data 发送的数据
56
+ url 父页面地址
57
+ useUtils.iframe.sendIframeParentData(data:any,url:string)
58
+ ```
59
+
28
60
  ### 地址栏参数处理
29
61
  #### 设置参数
30
62
  ```
@@ -1,7 +1,33 @@
1
1
  export declare const $iframe: (id: string) => any;
2
+ /**
3
+ *
4
+ * @param id
5
+ * @param keys
6
+ * @returns
7
+ */
2
8
  export declare const initParentDataToIframe: (id: string, keys?: string) => void;
9
+ /**
10
+ * 主应用 获取到 子应用Iframe传递的数据
11
+ * @param cb
12
+ */
3
13
  export declare const updateIframeReceiveData: (cb: any) => void;
14
+ /**
15
+ * 子应用 获取到 主应用 传递的数据
16
+ * @param cb
17
+ */
4
18
  export declare const updateParentReceiveData: (cb: any) => void;
19
+ /**
20
+ * 子应用frame 发送数据 到主应用
21
+ * @param sendData
22
+ * @param url
23
+ * @returns
24
+ */
5
25
  export declare const sendIframeParentData: (sendData: any, url: string) => void;
6
26
  export declare const updateWeiXinShareReady: () => void;
7
- export declare const sendParentMessage: (data: any, url: string) => void;
27
+ /**
28
+ * 主应用 发送数据到 子应用Iframe
29
+ * @param id
30
+ * @param data
31
+ * @param url
32
+ */
33
+ export declare const sendParentMessage: (id: string, data: any) => void;
@@ -26,6 +26,13 @@ var $iframe = function (id) {
26
26
  return;
27
27
  };
28
28
  exports.$iframe = $iframe;
29
+ // 主应用内初始化iframe子应用,并传递对应的参数到子应用
30
+ /**
31
+ *
32
+ * @param id
33
+ * @param keys
34
+ * @returns
35
+ */
29
36
  var initParentDataToIframe = function (id, keys) {
30
37
  var _a;
31
38
  if (!id) {
@@ -48,6 +55,10 @@ var initParentDataToIframe = function (id, keys) {
48
55
  });
49
56
  };
50
57
  exports.initParentDataToIframe = initParentDataToIframe;
58
+ /**
59
+ * 主应用 获取到 子应用Iframe传递的数据
60
+ * @param cb
61
+ */
51
62
  var updateIframeReceiveData = function (cb) {
52
63
  win.addEventListener('message', function (event) {
53
64
  var data = (event === null || event === void 0 ? void 0 : event.data) || {};
@@ -58,6 +69,10 @@ var updateIframeReceiveData = function (cb) {
58
69
  });
59
70
  };
60
71
  exports.updateIframeReceiveData = updateIframeReceiveData;
72
+ /**
73
+ * 子应用 获取到 主应用 传递的数据
74
+ * @param cb
75
+ */
61
76
  var updateParentReceiveData = function (cb) {
62
77
  win.addEventListener('message', function (event) {
63
78
  var data = event.data;
@@ -68,6 +83,12 @@ var updateParentReceiveData = function (cb) {
68
83
  }, false);
69
84
  };
70
85
  exports.updateParentReceiveData = updateParentReceiveData;
86
+ /**
87
+ * 子应用frame 发送数据 到主应用
88
+ * @param sendData
89
+ * @param url
90
+ * @returns
91
+ */
71
92
  var sendIframeParentData = function (sendData, url) {
72
93
  if (!url) {
73
94
  console.error("必须传入父页面的地址!");
@@ -91,12 +112,30 @@ var updateWeiXinShareReady = function () {
91
112
  });
92
113
  };
93
114
  exports.updateWeiXinShareReady = updateWeiXinShareReady;
94
- var sendParentMessage = function (data, url) {
95
- if (!url) {
96
- url = "*";
115
+ /**
116
+ * 主应用 发送数据到 子应用Iframe
117
+ * @param id
118
+ * @param data
119
+ * @param url
120
+ */
121
+ var sendParentMessage = function (id, data) {
122
+ if (!id) {
123
+ console.error("请传入iframe元素的id属性值");
97
124
  }
98
- if ((0, is_1.isObject)(data)) {
99
- win.parent.postMessage(JSON.stringify(data), url);
125
+ var iframe = (0, exports.$iframe)(id);
126
+ if (iframe) {
127
+ if ((0, is_1.isObject)(data)) {
128
+ iframe.addEventListener('load', function () {
129
+ // iFrame加载完成后的操作
130
+ iframe.contentWindow.postMessage(JSON.stringify(data), iframe.src);
131
+ });
132
+ }
133
+ else {
134
+ console.error("传递的数据仅支持对象格式!");
135
+ }
136
+ }
137
+ else {
138
+ console.error("未查询到iframe标签,请检查id属性值是否正确!");
100
139
  }
101
140
  };
102
141
  exports.sendParentMessage = sendParentMessage;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xctc-utils",
3
- "version": "1.6.36",
3
+ "version": "1.6.38",
4
4
  "description": "localStorage存储\r ```\r sessionStorage存储\r ```\r crypto-js加密、解密\r ```\r 微信授权登录、微信分享\r ```\r 设备环境获取\r ```\r 是否是微信浏览器\r ```\r 时间戳转时间,字符串转时间戳",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",