@alipay/ams-checkout 0.0.1749206034-dev.0 → 0.0.1750077254-dev.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.
@@ -13,6 +13,7 @@ export declare class ContainerService implements Service {
13
13
  private webApp;
14
14
  private _webAppHeartBeatTimeoutFn;
15
15
  private clientHeight;
16
+ private boundFocusResizeChange;
16
17
  private customizedLoadingListener;
17
18
  destroy(): void;
18
19
  init(initOptions: IoptionsParams, instanceId: string, sdkMetaData: SDKMetaData): void;
@@ -36,6 +36,7 @@ export var ContainerService = /*#__PURE__*/function () {
36
36
  _defineProperty(this, "webApp", void 0);
37
37
  _defineProperty(this, "_webAppHeartBeatTimeoutFn", void 0);
38
38
  _defineProperty(this, "clientHeight", void 0);
39
+ _defineProperty(this, "boundFocusResizeChange", void 0);
39
40
  // if this variable is true, SDK will invoke listener instead of showing loading
40
41
  _defineProperty(this, "customizedLoadingListener", void 0);
41
42
  }
@@ -57,6 +58,8 @@ export var ContainerService = /*#__PURE__*/function () {
57
58
  this.addCapabilityToEventCenter();
58
59
  }
59
60
  this.addCapabilityToApiBusManager();
61
+ // bind会返回一个新的方法,init时记录上这个focus,不然window.addEventListener时this指向会变成window
62
+ this.boundFocusResizeChange = this.focusResizeChange.bind(this);
60
63
  }
61
64
  }, {
62
65
  key: "update",
@@ -163,15 +166,15 @@ export var ContainerService = /*#__PURE__*/function () {
163
166
  value: function handleAccountFocus(focus) {
164
167
  var _window$visualViewpor, _window;
165
168
  // 失焦时v2会走默认的sizeChange还原高度,这里仅移除监听
166
- (_window$visualViewpor = window.visualViewport) === null || _window$visualViewpor === void 0 || _window$visualViewpor.removeEventListener('resize', this.focusResizeChange.bind(this));
167
- (_window = window) === null || _window === void 0 || _window.removeEventListener('resize', this.focusResizeChange.bind(this));
169
+ (_window$visualViewpor = window.visualViewport) === null || _window$visualViewpor === void 0 || _window$visualViewpor.removeEventListener('resize', this.boundFocusResizeChange);
170
+ (_window = window) === null || _window === void 0 || _window.removeEventListener('resize', this.boundFocusResizeChange);
168
171
  // 只有聚焦才监听,失焦后移除,避免影响别的场景
169
172
  if (focus) {
170
173
  var _window$visualViewpor2;
171
174
  // 监听页面visualViewport的高度变化,适用于主流机型更精准获取当前页面高度
172
- (_window$visualViewpor2 = window.visualViewport) === null || _window$visualViewpor2 === void 0 || _window$visualViewpor2.addEventListener('resize', this.focusResizeChange.bind(this));
175
+ (_window$visualViewpor2 = window.visualViewport) === null || _window$visualViewpor2 === void 0 || _window$visualViewpor2.addEventListener('resize', this.boundFocusResizeChange);
173
176
  // 兼容visualViewport处理不到的场景,一般存在于老版本浏览器
174
- window.addEventListener('resize', this.focusResizeChange.bind(this));
177
+ window.addEventListener('resize', this.boundFocusResizeChange);
175
178
  }
176
179
  }
177
180
  }, {
@@ -213,7 +216,7 @@ export var ContainerService = /*#__PURE__*/function () {
213
216
  _this.handleSizeChanged(_objectSpread({}, data));
214
217
  });
215
218
  this.eventCenter.listen(EVENT.showCloseButton.name, function (data) {
216
- _this.handleCloseButtonTheme(data.theme);
219
+ _this.handleCloseButtonTheme(data.style);
217
220
  _this.changeCloseBtnVisibility(true);
218
221
  });
219
222
  this.eventCenter.listen(EVENT.hideCloseButton.name, function () {
@@ -309,9 +312,11 @@ export var ContainerService = /*#__PURE__*/function () {
309
312
  var _window2;
310
313
  // 计算出当前iframe应有的高度,需要和顶部留有距离
311
314
  var webPageHeightRatio = 0.9;
315
+ var browserPageHeightFocusRatio = 0.9;
312
316
  // sdk层才能拿到当前键盘弹起后页面的高度
313
317
  var height = ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.visualViewport) === null || _window2 === void 0 ? void 0 : _window2.height) || window.innerHeight;
314
318
  height = height * webPageHeightRatio;
319
+ height = height * browserPageHeightFocusRatio;
315
320
  // 调用handleSizeChanged修改iframe高度
316
321
  this.handleSizeChanged({
317
322
  width: 0,
@@ -335,12 +340,12 @@ export var ContainerService = /*#__PURE__*/function () {
335
340
  if (!cashier) return;
336
341
  // 输入框聚焦时修改定位信息和top距离
337
342
  if (focus) {
338
- cashier.style.position = 'fixed';
339
- cashier.style.top = "".concat(this.clientHeight - cashier.clientHeight, "px");
343
+ cashier.style.setProperty('position', 'fixed', 'important');
344
+ cashier.style.setProperty('top', "".concat(this.clientHeight - cashier.clientHeight, "px"), 'important');
340
345
  } else {
341
346
  // 失焦时移除定位信息
342
- cashier.style.position = '';
343
- cashier.style.top = '';
347
+ cashier.style.removeProperty('position');
348
+ cashier.style.removeProperty('top');
344
349
  }
345
350
  }
346
351
  }, {
@@ -402,12 +407,12 @@ export var ContainerService = /*#__PURE__*/function () {
402
407
  }
403
408
  }, {
404
409
  key: "handleCloseButtonTheme",
405
- value: function handleCloseButtonTheme(theme) {
406
- if (!theme) return;
410
+ value: function handleCloseButtonTheme(style) {
411
+ if (!style) return;
407
412
  var closeBlock = document.getElementById(COMPONENT_CLOSE_BLOCK_ID);
408
413
  var closeButtonImg = closeBlock === null || closeBlock === void 0 ? void 0 : closeBlock.querySelector('img');
409
414
  var maskCloseBlock = document.getElementById(COMPONENT_CLOSE_MASK_BLOCK_ID);
410
- if (theme === 'light') {
415
+ if (style === 'light') {
411
416
  closeButtonImg === null || closeButtonImg === void 0 || closeButtonImg.setAttribute('src', closeImgLight);
412
417
  closeBlock === null || closeBlock === void 0 || closeBlock.classList.add("".concat(COMPONENT_CLOSE_BLOCK_ID, "-light"));
413
418
  maskCloseBlock === null || maskCloseBlock === void 0 || maskCloseBlock.classList.add("".concat(COMPONENT_CLOSE_MASK_BLOCK_ID, "-light"));
@@ -69,26 +69,42 @@ export var redirect = function redirect(payload, instanceId) {
69
69
  successCallback(payload, type, evokeAppBy.url, serviceProvider);
70
70
  }
71
71
  });
72
+ var callApplinkUrl = function callApplinkUrl() {
73
+ try {
74
+ callAppLib.open({
75
+ link: payload.applinkUrl,
76
+ fallback: function fallback() {
77
+ failCallback(payload, RedirectType.ApplinkUrl, payload.applinkUrl, serviceProvider);
78
+ // Applink evoke failed, try to use scheme url
79
+ callSchemeUrl();
80
+ }
81
+ });
82
+ } catch (error) {
83
+ failCallback(payload, RedirectType.ApplinkUrl, payload.applinkUrl, serviceProvider);
84
+ // Applink evoke failed, try to use scheme url
85
+ callSchemeUrl();
86
+ }
87
+ };
72
88
  var callSchemeUrl = function callSchemeUrl() {
73
- callAppLib.open({
74
- scheme: payload.schemeUrl,
75
- fallback: function fallback() {
76
- failCallback(payload, RedirectType.SchemeUrl, payload.schemeUrl, serviceProvider);
77
- if (!payload.url) return failCallback(payload, RedirectType.NormalUrl, '', serviceProvider);
78
- successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
79
- window.location.href = payload.url;
80
- }
81
- });
89
+ try {
90
+ callAppLib.open({
91
+ scheme: payload.schemeUrl,
92
+ fallback: function fallback() {
93
+ failCallback(payload, RedirectType.SchemeUrl, payload.schemeUrl, serviceProvider);
94
+ if (!payload.url) return failCallback(payload, RedirectType.NormalUrl, '', serviceProvider);
95
+ successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
96
+ window.location.href = payload.url;
97
+ }
98
+ });
99
+ } catch (error) {
100
+ failCallback(payload, RedirectType.SchemeUrl, payload.schemeUrl, serviceProvider);
101
+ if (!payload.url) return failCallback(payload, RedirectType.NormalUrl, '', serviceProvider);
102
+ successCallback(payload, RedirectType.NormalUrl, payload.url, serviceProvider);
103
+ window.location.href = payload.url;
104
+ }
82
105
  };
83
106
  if (payload.applinkUrl) {
84
- callAppLib.open({
85
- link: payload.applinkUrl,
86
- fallback: function fallback() {
87
- failCallback(payload, RedirectType.ApplinkUrl, payload.applinkUrl, serviceProvider);
88
- // Applink evoke failed, try to use scheme url
89
- callSchemeUrl();
90
- }
91
- });
107
+ callApplinkUrl();
92
108
  } else if (payload.schemeUrl) {
93
109
  callSchemeUrl();
94
110
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alipay/ams-checkout",
3
- "version": "0.0.1749206034-dev.0",
3
+ "version": "0.0.1750077254-dev.0",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "main": "esm/index.js",