xctc-utils 1.6.29 → 1.6.31

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.
@@ -0,0 +1,5 @@
1
+ export declare const $iframe: (id: string) => any;
2
+ export declare const initParentDataToIframe: (id: string, keys?: string) => void;
3
+ export declare const updateIframeReceiveData: (cb: any) => void;
4
+ export declare const updateWeiXinShareReady: () => void;
5
+ export declare const sendParentMessage: (data: any, url: string) => void;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sendParentMessage = exports.updateWeiXinShareReady = exports.updateIframeReceiveData = exports.initParentDataToIframe = exports.$iframe = void 0;
4
+ var is_1 = require("../is");
5
+ var weixin_1 = require("../weixin");
6
+ var utils_1 = require("../utils");
7
+ var storage_1 = require("../storage");
8
+ /**
9
+ *
10
+ * @param id
11
+ * @returns
12
+ */
13
+ var win = window;
14
+ var $iframe = function (id) {
15
+ if (!id) {
16
+ console.error("请传入 iframe id属性值!");
17
+ return;
18
+ }
19
+ var iframe = (0, utils_1.$id)(id) || {};
20
+ if ((iframe === null || iframe === void 0 ? void 0 : iframe.tagName) === 'IFRAME') {
21
+ return iframe;
22
+ }
23
+ else {
24
+ console.error("\u672A\u67E5\u8BE2\u5230id=".concat(id, "\u7684iframe\u6807\u7B7E"));
25
+ }
26
+ return;
27
+ };
28
+ exports.$iframe = $iframe;
29
+ var initParentDataToIframe = function (id, keys) {
30
+ var _a;
31
+ if (!id) {
32
+ console.error("请传入 iframe id属性值!");
33
+ return;
34
+ }
35
+ if (!keys) {
36
+ keys = "urlParamsData";
37
+ }
38
+ var iframe = (0, exports.$iframe)(id);
39
+ var stateData = (0, storage_1.getSessionStorage)(keys) || {};
40
+ var data = {};
41
+ if ((_a = stateData === null || stateData === void 0 ? void 0 : stateData.state) === null || _a === void 0 ? void 0 : _a.data) {
42
+ data = stateData.state.data || {};
43
+ }
44
+ data = JSON.stringify(data);
45
+ iframe.addEventListener('load', function () {
46
+ // iFrame加载完成后的操作
47
+ iframe.contentWindow.postMessage(data, iframe.src);
48
+ });
49
+ };
50
+ exports.initParentDataToIframe = initParentDataToIframe;
51
+ var updateIframeReceiveData = function (cb) {
52
+ win.addEventListener('message', function (event) {
53
+ var data = (event === null || event === void 0 ? void 0 : event.data) || {};
54
+ var messageData = (0, utils_1.isJson)(data) || "";
55
+ if (typeof cb === "function" && (messageData === null || messageData === void 0 ? void 0 : messageData.type) == "data") {
56
+ cb((0, utils_1.isJson)(messageData === null || messageData === void 0 ? void 0 : messageData.data));
57
+ }
58
+ });
59
+ };
60
+ exports.updateIframeReceiveData = updateIframeReceiveData;
61
+ var updateWeiXinShareReady = function () {
62
+ win.addEventListener('message', function (event) {
63
+ var data = event.data;
64
+ var messageData = (0, utils_1.isJson)(data) || "";
65
+ if ((messageData === null || messageData === void 0 ? void 0 : messageData.type) == "share" && (messageData === null || messageData === void 0 ? void 0 : messageData.data)) {
66
+ (0, weixin_1.shareReady)(messageData.data);
67
+ }
68
+ });
69
+ };
70
+ exports.updateWeiXinShareReady = updateWeiXinShareReady;
71
+ var sendParentMessage = function (data, url) {
72
+ if (!url) {
73
+ url = "*";
74
+ }
75
+ if ((0, is_1.isObject)(data)) {
76
+ win.parent.postMessage(JSON.stringify(data), url);
77
+ }
78
+ };
79
+ exports.sendParentMessage = sendParentMessage;
package/dist/index.js CHANGED
@@ -43,5 +43,6 @@ var format = __importStar(require("./format"));
43
43
  var isType = __importStar(require("./is"));
44
44
  var modal = __importStar(require("./modal"));
45
45
  var params = __importStar(require("./params"));
46
- var obj = __assign(__assign(__assign({}, storage), utils), { weixin: __assign({}, weixin), crypto: __assign({}, crypto), date: __assign({}, time), format: __assign({}, format), type: __assign({}, isType), modal: __assign({}, modal), params: __assign({}, params) });
46
+ var iframe = __importStar(require("./iframe"));
47
+ var obj = __assign(__assign(__assign({}, storage), utils), { weixin: __assign({}, weixin), crypto: __assign({}, crypto), date: __assign({}, time), format: __assign({}, format), type: __assign({}, isType), modal: __assign({}, modal), params: __assign({}, params), iframe: __assign({}, iframe) });
47
48
  exports.default = obj;
@@ -28,4 +28,5 @@ export declare const urlStateParams: (cacheKey?: string, key?: string, iv?: stri
28
28
  * @returns
29
29
  */
30
30
  export declare const formatDataToUrl: (data: any) => string;
31
+ export declare const formatDataToPath: (data: any) => string;
31
32
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatDataToUrl = exports.urlStateParams = exports.get = exports.set = void 0;
3
+ exports.formatDataToPath = exports.formatDataToUrl = exports.urlStateParams = exports.get = exports.set = void 0;
4
4
  var crypto_1 = require("../crypto");
5
5
  var storage_1 = require("../storage");
6
6
  var defaultKey = "5uMz4R8r0926DkC8";
@@ -162,3 +162,25 @@ var formatDataToUrl = function (data) {
162
162
  return url;
163
163
  };
164
164
  exports.formatDataToUrl = formatDataToUrl;
165
+ var formatDataToPath = function (data) {
166
+ var path = "";
167
+ var str = "";
168
+ var hashVal = loc.hash;
169
+ if ((0, is_1.isObject)(data)) {
170
+ for (var key in data) {
171
+ if (key != "path") {
172
+ str += "".concat(key, "=").concat(data[key], "&");
173
+ }
174
+ }
175
+ if (data === null || data === void 0 ? void 0 : data.path) {
176
+ if (str) {
177
+ path = "".concat(data === null || data === void 0 ? void 0 : data.path, "?").concat(str);
178
+ }
179
+ }
180
+ else {
181
+ path = str;
182
+ }
183
+ }
184
+ return path;
185
+ };
186
+ exports.formatDataToPath = formatDataToPath;
package/dist/utils.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleCopyValue = exports.weixinBrowser = exports.deviceEnvironment = exports.getIframeContentHeight = exports.checkIframeContentHeight = exports.$id = exports.isJson = exports.isMobile = void 0;
4
+ var is_1 = require("./is");
4
5
  var win = window;
5
6
  // 是否是手机端环境
6
7
  function isMobile() {
@@ -15,8 +16,14 @@ exports.isMobile = isMobile;
15
16
  * @returns
16
17
  */
17
18
  function isJson(str) {
18
- if (!str)
19
+ if (!str) {
20
+ console.error("isJson函数接收参数为json对象字符串!");
19
21
  return false;
22
+ }
23
+ if ((0, is_1.isObject)(str)) {
24
+ // 如果传入的参数为对象,则直接返回
25
+ return str;
26
+ }
20
27
  try {
21
28
  var obj = JSON.parse(str);
22
29
  if (obj && typeof obj == "object") {
@@ -321,7 +321,8 @@ var isContinue = function () {
321
321
  if (search) {
322
322
  codeIndex = search.indexOf("code=");
323
323
  }
324
- if (localCodeData && localCodeData.hasOwnProperty("code")) {
324
+ // 必须是已经存储微信授权 code ,并且链接中已无 code 字段,已完成刷新状态
325
+ if (localCodeData && localCodeData.hasOwnProperty("code") && codeIndex == -1) {
325
326
  return true;
326
327
  }
327
328
  else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xctc-utils",
3
- "version": "1.6.29",
3
+ "version": "1.6.31",
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",