xctc-utils 1.6.28 → 1.6.30

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('updateIframeData', function (event) {
53
+ var data = (event === null || event === void 0 ? void 0 : event.data) || {};
54
+ if (typeof cb === "function") {
55
+ cb((0, utils_1.isJson)(data));
56
+ }
57
+ });
58
+ };
59
+ exports.updateIframeReceiveData = updateIframeReceiveData;
60
+ var updateWeiXinShareReady = function () {
61
+ win.addEventListener('updateWeiXinShareReady', function (event) {
62
+ var data = event.data;
63
+ var shareData = (0, utils_1.isJson)(data) || "";
64
+ if (shareData) {
65
+ alert("已获取到iframe触发的微信分享新配置数据");
66
+ (0, weixin_1.shareReady)(shareData);
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;
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") {
@@ -36,6 +36,7 @@ interface ShareOptions {
36
36
  iv?: string;
37
37
  key?: string;
38
38
  shareUrl?: string;
39
+ dbug?: boolean;
39
40
  }
40
41
  export declare function shareReady(options: ShareOptions): void;
41
42
  /**
@@ -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 {
@@ -427,6 +428,9 @@ function shareReady(options) {
427
428
  }
428
429
  if (options['shareUrl'])
429
430
  link = options['shareUrl'];
431
+ if (options === null || options === void 0 ? void 0 : options.dbug) {
432
+ alert(JSON.stringify(options));
433
+ }
430
434
  var wx = initSdk();
431
435
  (0, index_1.useSessionStorage)("weixinShareUrl", link);
432
436
  wx.ready(function () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xctc-utils",
3
- "version": "1.6.28",
3
+ "version": "1.6.30",
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",