crh-jssdk 1.0.28 → 1.0.29

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.
@@ -64,7 +64,6 @@ var actionMap = {
64
64
  window.MyWebView.onJsOverrideUrlLoading(str);
65
65
  }
66
66
  else if (window.HarmonyOS && window.HarmonyOS.onJsOverrideUrlLoading) {
67
- console.log("HarmonyOS.onJsOverrideUrlLoading: ".concat(str));
68
67
  window.HarmonyOS.onJsOverrideUrlLoading(str);
69
68
  }
70
69
  else {
@@ -283,6 +282,12 @@ exports.default = {
283
282
  */
284
283
  setCollect: function (params) {
285
284
  var _this = this;
285
+ if ((0, utils_1.checkIsHarmonyOS)()) {
286
+ return {
287
+ error_no: "-1",
288
+ error_info: "暂不支持该功能",
289
+ };
290
+ }
286
291
  var sdkParams = {
287
292
  productNo: params.productNo,
288
293
  productCode: params.productCode,
@@ -351,6 +356,12 @@ exports.default = {
351
356
  queryCollect: function (params) {
352
357
  var _this = this;
353
358
  console.log('queryCollect', params);
359
+ if ((0, utils_1.checkIsHarmonyOS)()) {
360
+ return {
361
+ error_no: "-1",
362
+ error_info: "暂不支持该功能",
363
+ };
364
+ }
354
365
  var sdkParams = {
355
366
  productNo: params.productNo,
356
367
  productCode: params.productCode,
@@ -126,19 +126,29 @@ var JYBridge = /** @class */ (function () {
126
126
  /**
127
127
  * 初始化Bridge连接
128
128
  * 使用ClientTHS初始化方式
129
+ * 注意:从第三方页面返回时 WebView 可能被重建,Bridge 尚未注入,需配合 iframe 触发重新注入
129
130
  */
130
131
  JYBridge.prototype.init = function () {
131
132
  var _this = this;
132
133
  return new Promise(function (resolve) {
133
134
  // 使用ClientTHS初始化(与ClientTemplate.js一致)
134
135
  JYClientTHS.init();
136
+ var checkCount = 0;
137
+ // 最多等待30秒(300次 * 100ms),超时后不再等待
138
+ var maxChecks = 300;
135
139
  // 等待WebViewJavascriptBridgeReady事件
136
140
  var checkBridge = function () {
141
+ checkCount++;
137
142
  if (window.WebViewJavascriptBridge) {
138
143
  _this.bridge = window.WebViewJavascriptBridge;
139
144
  console.log('JYBridge 初始化完成');
140
145
  resolve();
141
146
  }
147
+ else if (checkCount >= maxChecks) {
148
+ // 超时,不再等待
149
+ console.warn('JYBridge 初始化超时(30秒),停止等待');
150
+ resolve();
151
+ }
142
152
  else {
143
153
  setTimeout(checkBridge, 100);
144
154
  }
@@ -153,24 +163,58 @@ var JYBridge = /** @class */ (function () {
153
163
  * @param params 参数
154
164
  */
155
165
  JYBridge.prototype.bridgeCallHandler = function (type, name, params) {
166
+ var _this = this;
156
167
  if (type === void 0) { type = ''; }
157
168
  if (name === void 0) { name = ''; }
158
169
  if (params === void 0) { params = {}; }
159
170
  if (type === 'Promise') {
160
171
  return new Promise(function (resolve, reject) {
172
+ // 构造超时 reject 函数,避免重复定义
173
+ var timeoutReject = function () {
174
+ reject(new Error("\u8C03\u7528".concat(name, "\u65B9\u6CD5\u8D85\u65F6\uFF0810\u79D2\uFF09\uFF0CBridge\u53EF\u80FD\u4E0D\u53EF\u7528")));
175
+ };
176
+ // 设置10秒超时
177
+ var timeoutId = setTimeout(timeoutReject, 10000);
161
178
  try {
162
- JYClientTHS.bridgeCallHandler(name, params, function (response) {
163
- // 只要有响应就 resolve,即使是空对象或只有 login_status
164
- // getUserInfoByRsa 未登录时返回 { login_status: "0" }
165
- if (response !== undefined && response !== null) {
166
- resolve(response);
167
- }
168
- else {
169
- reject(new Error("\u8C03\u7528".concat(name, "\u65B9\u6CD5\u5931\u8D25\u4E86!")));
170
- }
179
+ // 等待Bridge初始化完成后再执行
180
+ _this.waitForReady(300)
181
+ .then(function () {
182
+ // Bridge已就绪,执行调用
183
+ JYClientTHS.bridgeCallHandler(name, params, function (response) {
184
+ clearTimeout(timeoutId);
185
+ // 只要有响应就 resolve,即使是空对象或只有 login_status
186
+ // getUserInfoByRsa 未登录时返回 { login_status: "0" }
187
+ if (response !== undefined && response !== null) {
188
+ resolve(response);
189
+ }
190
+ else {
191
+ reject(new Error("\u8C03\u7528".concat(name, "\u65B9\u6CD5\u5931\u8D25\u4E86!")));
192
+ }
193
+ });
194
+ })
195
+ .catch(function () {
196
+ // waitForReady 超时,尝试直接连接
197
+ JYClientTHS.connectWebViewJavascriptBridge(function (bridge) {
198
+ if (bridge && typeof bridge.callHandler === 'function') {
199
+ bridge.callHandler(name, params, function (response) {
200
+ clearTimeout(timeoutId);
201
+ if (response !== undefined && response !== null) {
202
+ resolve(response);
203
+ }
204
+ else {
205
+ reject(new Error("\u8C03\u7528".concat(name, "\u65B9\u6CD5\u5931\u8D25\u4E86!")));
206
+ }
207
+ });
208
+ }
209
+ else {
210
+ clearTimeout(timeoutId);
211
+ reject(new Error('Bridge不可用,请从App重新进入页面'));
212
+ }
213
+ });
171
214
  });
172
215
  }
173
216
  catch (e) {
217
+ clearTimeout(timeoutId);
174
218
  reject(e);
175
219
  }
176
220
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crh-jssdk",
3
- "version": "1.0.28",
3
+ "version": "1.0.29",
4
4
  "description": "crh-jssdk",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {