crh-jssdk 1.0.37 → 1.0.39

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,470 @@
1
+ "use strict";
2
+ /**
3
+ * @description 东亚前海基础模块 - Bridge版本
4
+ * 基于WebViewJavascriptBridge实现基础功能
5
+ * 东亚前海券商,通过 ua 中包含 qsid/401 来判断
6
+ */
7
+ var __assign = (this && this.__assign) || function () {
8
+ __assign = Object.assign || function(t) {
9
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
10
+ s = arguments[i];
11
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
12
+ t[p] = s[p];
13
+ }
14
+ return t;
15
+ };
16
+ return __assign.apply(this, arguments);
17
+ };
18
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
19
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
20
+ return new (P || (P = Promise))(function (resolve, reject) {
21
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
22
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
23
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
24
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
25
+ });
26
+ };
27
+ var __generator = (this && this.__generator) || function (thisArg, body) {
28
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
29
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
30
+ function verb(n) { return function (v) { return step([n, v]); }; }
31
+ function step(op) {
32
+ if (f) throw new TypeError("Generator is already executing.");
33
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
34
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
35
+ if (y = 0, t) op = [op[0] & 2, t.value];
36
+ switch (op[0]) {
37
+ case 0: case 1: t = op; break;
38
+ case 4: _.label++; return { value: op[1], done: false };
39
+ case 5: _.label++; y = op[1]; op = [0]; continue;
40
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
41
+ default:
42
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
43
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
44
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
45
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
46
+ if (t[2]) _.ops.pop();
47
+ _.trys.pop(); continue;
48
+ }
49
+ op = body.call(thisArg, _);
50
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
51
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
52
+ }
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ var utils_1 = require("../utils");
56
+ exports.default = {
57
+ /**
58
+ * 检查是否在App环境中
59
+ * 通过 ua 中是否包含 qsid/401 来判断是否是东亚前海券商
60
+ */
61
+ isApp: function () {
62
+ var ua = navigator.userAgent;
63
+ console.log("东亚前海 UA:", ua);
64
+ return ua.includes("qsid/591");
65
+ },
66
+ /**
67
+ * 获取webview类型
68
+ */
69
+ webviewType: function () {
70
+ var ua = navigator.userAgent;
71
+ return {
72
+ isDYQHZQ: ua.includes("qsid/591"), // 东亚前海
73
+ isIOS: utils_1.ios,
74
+ isAndroid: /Android/i.test(ua),
75
+ ua: ua,
76
+ };
77
+ },
78
+ /**
79
+ * 返回到App
80
+ * @param params 返回参数
81
+ */
82
+ goBack: function () {
83
+ return __awaiter(this, arguments, void 0, function (params) {
84
+ var backParams, error_1;
85
+ if (params === void 0) { params = {}; }
86
+ return __generator(this, function (_a) {
87
+ switch (_a.label) {
88
+ case 0:
89
+ _a.trys.push([0, 2, , 3]);
90
+ backParams = __assign({ type: "webpage" }, params);
91
+ console.log("东亚前海调用goBack,参数:", backParams);
92
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "goback", backParams)];
93
+ case 1:
94
+ _a.sent();
95
+ console.log("东亚前海返回App成功");
96
+ return [3 /*break*/, 3];
97
+ case 2:
98
+ error_1 = _a.sent();
99
+ console.error("东亚前海返回App失败:", error_1);
100
+ throw error_1;
101
+ case 3: return [2 /*return*/];
102
+ }
103
+ });
104
+ });
105
+ },
106
+ /**
107
+ * 关闭当前页面
108
+ */
109
+ closeSJKH: function () {
110
+ return __awaiter(this, void 0, void 0, function () {
111
+ var error_2;
112
+ return __generator(this, function (_a) {
113
+ switch (_a.label) {
114
+ case 0:
115
+ _a.trys.push([0, 2, , 3]);
116
+ return [4 /*yield*/, this.goBack({ type: "component" })];
117
+ case 1:
118
+ _a.sent();
119
+ return [3 /*break*/, 3];
120
+ case 2:
121
+ error_2 = _a.sent();
122
+ console.error("东亚前海关闭页面失败:", error_2);
123
+ return [3 /*break*/, 3];
124
+ case 3: return [2 /*return*/];
125
+ }
126
+ });
127
+ });
128
+ },
129
+ /**
130
+ * 跳转到客户端页面(通过JSBridge)
131
+ * @param url 完整跳转链接,与中台路由格式一样
132
+ * @param needTitle 是否显示原生标题栏
133
+ */
134
+ goWebview: function (params) {
135
+ return __awaiter(this, void 0, void 0, function () {
136
+ var url, _a, needTitle, _b, isWt, gotoUrl, error_3;
137
+ return __generator(this, function (_c) {
138
+ switch (_c.label) {
139
+ case 0:
140
+ url = params.url, _a = params.needTitle, needTitle = _a === void 0 ? true : _a, _b = params.isWt, isWt = _b === void 0 ? false : _b;
141
+ _c.label = 1;
142
+ case 1:
143
+ _c.trys.push([1, 9, , 10]);
144
+ if (!isWt) return [3 /*break*/, 5];
145
+ if (!utils_1.ios) return [3 /*break*/, 2];
146
+ window.location.href = url;
147
+ return [3 /*break*/, 4];
148
+ case 2: return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "gotoNextPage", {
149
+ url: url,
150
+ })];
151
+ case 3:
152
+ _c.sent();
153
+ _c.label = 4;
154
+ case 4: return [2 /*return*/];
155
+ case 5:
156
+ console.log("---ios");
157
+ if (!utils_1.ios) return [3 /*break*/, 6];
158
+ window.location.href = "client://hxsecurity.frame.router/5032?url=".concat(url, "&rp_flag_push_to_stack_directly=1&isHiddenNavigationBar=1&isHiddenBottomBar=1&isNeedWtLogin=1");
159
+ return [2 /*return*/];
160
+ case 6:
161
+ gotoUrl = "client.html?action=ymtz^webid=9995^url=".concat(url, "^isHiddenNavigationBar=").concat(needTitle ? 1 : 0, "^isHiddenBottomBar=1^isNeedWtLogin=1");
162
+ console.log("gotoUrl", gotoUrl);
163
+ console.log("gotoUrl----11", "client.html?action=ymtz^webid=9995^url=".concat(encodeURIComponent(url), "^isHiddenNavigationBar=").concat(needTitle ? 1 : 0, "^isHiddenBottomBar=1^isNeedWtLogin=1"));
164
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "gotoNextPage", {
165
+ url: gotoUrl,
166
+ })];
167
+ case 7: return [2 /*return*/, _c.sent()];
168
+ case 8: return [3 /*break*/, 10];
169
+ case 9:
170
+ error_3 = _c.sent();
171
+ console.error("东亚前海跳转客户端页面失败:", error_3);
172
+ return [2 /*return*/, { success: false }];
173
+ case 10: return [2 /*return*/];
174
+ }
175
+ });
176
+ });
177
+ },
178
+ /**
179
+ * 设置原生状态栏颜色
180
+ * 对外统一接口:color(背景色)
181
+ * 内部转换为东亚前海原生接口所需参数
182
+ * @param {object} params
183
+ * @param {string} params.color 状态栏背景颜色,如#ff0000
184
+ */
185
+ setStatusBar: function (params) {
186
+ return __awaiter(this, void 0, void 0, function () {
187
+ var bridgeParams;
188
+ return __generator(this, function (_a) {
189
+ console.log("东亚前海设置状态栏参数:", params);
190
+ try {
191
+ bridgeParams = {};
192
+ if (utils_1.ios) {
193
+ if (params.color) {
194
+ bridgeParams.statusColor = params.color;
195
+ }
196
+ }
197
+ else {
198
+ bridgeParams.statusColorMode = "white";
199
+ }
200
+ console.log("东亚前海调用 modifyStatusColor,参数:", bridgeParams);
201
+ utils_1.dyqhzqBridge.bridgeCallHandler("", "modifyStatusColor", bridgeParams);
202
+ console.log("东亚前海设置状态栏颜色成功");
203
+ return [2 /*return*/, { success: true }];
204
+ }
205
+ catch (error) {
206
+ console.error("东亚前海设置状态栏颜色失败:", error);
207
+ throw error;
208
+ }
209
+ return [2 /*return*/];
210
+ });
211
+ });
212
+ },
213
+ /**
214
+ * 判断颜色是否为浅色
215
+ * 基于颜色的亮度判断:亮度 > 0.5 为浅色
216
+ * @param color 颜色值,如 #ffffff
217
+ */
218
+ isLightColor: function (color) {
219
+ var hex = color.replace("#", "");
220
+ var r, g, b;
221
+ if (hex.length === 3) {
222
+ r = parseInt(hex[0] + hex[0], 16);
223
+ g = parseInt(hex[1] + hex[1], 16);
224
+ b = parseInt(hex[2] + hex[2], 16);
225
+ }
226
+ else {
227
+ r = parseInt(hex.substring(0, 2), 16);
228
+ g = parseInt(hex.substring(2, 4), 16);
229
+ b = parseInt(hex.substring(4, 6), 16);
230
+ }
231
+ var brightness = (r * 299 + g * 587 + b * 114) / 1000;
232
+ return brightness > 128;
233
+ },
234
+ /**
235
+ * 分享功能
236
+ * @param params 分享参数
237
+ */
238
+ share: function (params) {
239
+ return __awaiter(this, void 0, void 0, function () {
240
+ var shareParams, result, error_4;
241
+ return __generator(this, function (_a) {
242
+ switch (_a.label) {
243
+ case 0:
244
+ _a.trys.push([0, 2, , 3]);
245
+ shareParams = __assign({ type: "1", bmpRes: "3" }, params);
246
+ console.log("东亚前海调用分享,参数:", shareParams);
247
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "hexinShare", shareParams)];
248
+ case 1:
249
+ result = _a.sent();
250
+ console.log("东亚前海分享调用成功:", result);
251
+ return [2 /*return*/, result];
252
+ case 2:
253
+ error_4 = _a.sent();
254
+ console.error("东亚前海分享失败:", error_4);
255
+ throw error_4;
256
+ case 3: return [2 /*return*/];
257
+ }
258
+ });
259
+ });
260
+ },
261
+ /**
262
+ * 保存图片到相册
263
+ * @param imageData 图片的base64格式字符串
264
+ */
265
+ saveImageToAlbum: function (imageData) {
266
+ return __awaiter(this, void 0, void 0, function () {
267
+ var params, result, error_5;
268
+ return __generator(this, function (_a) {
269
+ switch (_a.label) {
270
+ case 0:
271
+ _a.trys.push([0, 2, , 3]);
272
+ params = { imageData: imageData };
273
+ console.log("东亚前海保存图片到相册");
274
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "saveImageToAlbum", params)];
275
+ case 1:
276
+ result = _a.sent();
277
+ console.log("东亚前海保存图片成功:", result);
278
+ return [2 /*return*/, result];
279
+ case 2:
280
+ error_5 = _a.sent();
281
+ console.error("东亚前海保存图片失败:", error_5);
282
+ throw error_5;
283
+ case 3: return [2 /*return*/];
284
+ }
285
+ });
286
+ });
287
+ },
288
+ /**
289
+ * 拦截Android物理返回键事件,并回调给前端 --- 仅安卓
290
+ */
291
+ interceptBack: function (callback) {
292
+ try {
293
+ utils_1.dyqhzqBridge.registerHandler("interceptBack", function (data) {
294
+ callback && callback(data);
295
+ });
296
+ }
297
+ catch (error) {
298
+ console.error("东亚前海拦截返回键失败:", error);
299
+ }
300
+ },
301
+ /**
302
+ * 注册APP物理返回键拦截监听器
303
+ * @param callback 回调函数,当用户点击物理返回键时触发
304
+ */
305
+ registerPhysicalReturnListener: function (callback) {
306
+ try {
307
+ console.log("东亚前海注册物理返回键拦截监听器");
308
+ utils_1.dyqhzqBridge.registerHandler("clientPhysicalReturn", function (data) {
309
+ console.log("东亚前海收到物理返回键事件:", data);
310
+ if (typeof callback === "function") {
311
+ callback();
312
+ }
313
+ });
314
+ console.log("东亚前海物理返回键拦截监听器注册成功");
315
+ }
316
+ catch (error) {
317
+ console.error("东亚前海注册物理返回键拦截监听器失败:", error);
318
+ }
319
+ },
320
+ /**
321
+ * 跳转个股详情页
322
+ */
323
+ goStockDetail: function (params) {
324
+ var stockcode = params.stockcode, stockmarket = params.stockmarket;
325
+ try {
326
+ console.error("东亚前海跳转个股详情数据:", stockcode, stockmarket);
327
+ utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "HXJumpToStockFenshi", {
328
+ stockcode: stockcode,
329
+ stockmarket: stockmarket,
330
+ });
331
+ }
332
+ catch (error) {
333
+ console.error("东亚前海跳转个股详情失败:", error);
334
+ }
335
+ },
336
+ /**
337
+ * 获取客户端版本号
338
+ * 通过解析ua获取版本信息
339
+ */
340
+ getVersion: function () {
341
+ var ua = navigator.userAgent.toLowerCase();
342
+ var regex = "";
343
+ regex = /qsid[\/_]?401[\/_]?([\d.]+)/;
344
+ var match = ua.match(regex);
345
+ console.log(match, "===东亚前海版本match===");
346
+ if (match) {
347
+ var version = match[1];
348
+ return version;
349
+ }
350
+ else {
351
+ console.warn("东亚前海version没有找到匹配项");
352
+ return "0.0.0";
353
+ }
354
+ },
355
+ /**
356
+ * 关注公众号
357
+ * @param appid 公众号的appid,默认为wxf45c81345f5ea70e
358
+ */
359
+ followOfficialAccount: function () {
360
+ return __awaiter(this, arguments, void 0, function (appid) {
361
+ var params, result, error_6;
362
+ if (appid === void 0) { appid = "wxf45c81345f5ea70e"; }
363
+ return __generator(this, function (_a) {
364
+ switch (_a.label) {
365
+ case 0:
366
+ _a.trys.push([0, 2, , 3]);
367
+ params = {
368
+ jumptype: "1",
369
+ downloadurl: "weixin://dl/officialaccounts?appid=".concat(appid),
370
+ };
371
+ console.log("东亚前海调用关注公众号,参数:", params);
372
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("", "startApplication", params)];
373
+ case 1:
374
+ result = _a.sent();
375
+ console.log("东亚前海关注公众号调用成功:", result);
376
+ return [2 /*return*/, result];
377
+ case 2:
378
+ error_6 = _a.sent();
379
+ console.error("东亚前海关注公众号失败:", error_6);
380
+ throw error_6;
381
+ case 3: return [2 /*return*/];
382
+ }
383
+ });
384
+ });
385
+ },
386
+ /**
387
+ * 在app内打开pdf文件
388
+ */
389
+ openPDFFile: function (url, title) {
390
+ return __awaiter(this, void 0, void 0, function () {
391
+ var typeList, type, params;
392
+ return __generator(this, function (_a) {
393
+ console.log("东亚前海 HXDownloadFile title", title);
394
+ typeList = url.split(".");
395
+ type = "PDF";
396
+ params = {
397
+ url: url,
398
+ filetype: type,
399
+ title: title,
400
+ pdfFileName: title,
401
+ };
402
+ console.log("东亚前海 HXDownloadFile", params);
403
+ utils_1.dyqhzqBridge
404
+ .bridgeCallHandler("Promise", "HXDownloadFile", params)
405
+ .then(function () {
406
+ console.log("东亚前海 HXDownloadFile success");
407
+ })
408
+ .catch(function (err) {
409
+ console.error("东亚前海 HXDownloadFile error", err);
410
+ });
411
+ return [2 /*return*/];
412
+ });
413
+ });
414
+ },
415
+ /**
416
+ * 在app内打开浏览器
417
+ * @param url 浏览器地址
418
+ */
419
+ doOpenBrowser: function (url) {
420
+ return __awaiter(this, void 0, void 0, function () {
421
+ return __generator(this, function (_a) {
422
+ console.log("东亚前海要调用doOpenBrowser了", url);
423
+ return [2 /*return*/, new Promise(function (resolve, reject) {
424
+ utils_1.dyqhzqBridge
425
+ .bridgeCallHandler("Promise", "doOpenBrowser", { url: url })
426
+ .then(function () {
427
+ console.log("东亚前海 doOpenBrowser---resolve");
428
+ resolve(void 0);
429
+ })
430
+ .catch(function (err) {
431
+ console.log(err, "东亚前海 doOpenBrowser---reject");
432
+ reject(err);
433
+ });
434
+ })];
435
+ });
436
+ });
437
+ },
438
+ /**
439
+ * 跳转财人汇SDK页面(东亚前海定制)
440
+ * @param params 跳转参数
441
+ */
442
+ doOpenCRHSDK: function (params) {
443
+ return __awaiter(this, void 0, void 0, function () {
444
+ var result, error_7;
445
+ return __generator(this, function (_a) {
446
+ switch (_a.label) {
447
+ case 0:
448
+ _a.trys.push([0, 2, , 3]);
449
+ console.log("东亚前海调用doOpenCRHSDK,参数:", params);
450
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "doOpenCRHSDK", params)];
451
+ case 1:
452
+ result = _a.sent();
453
+ console.log("东亚前海doOpenCRHSDK调用成功:", result);
454
+ return [2 /*return*/, result];
455
+ case 2:
456
+ error_7 = _a.sent();
457
+ console.error("东亚前海doOpenCRHSDK失败:", error_7);
458
+ throw error_7;
459
+ case 3: return [2 /*return*/];
460
+ }
461
+ });
462
+ });
463
+ },
464
+ /**
465
+ * 获取Bridge实例(供其他模块使用)
466
+ */
467
+ getBridge: function () {
468
+ return utils_1.dyqhzqBridge;
469
+ },
470
+ };
@@ -81,68 +81,78 @@ var utils_1 = require("./utils");
81
81
  var base_1 = __importDefault(require("./base")); // 基础
82
82
  var profession_1 = __importDefault(require("./profession")); // 业务
83
83
  var user_1 = __importDefault(require("./user")); // 用户
84
+ //SDK版本号,运行时读取package.json的version
85
+ var SDK_VERSION = "";
86
+ try {
87
+ SDK_VERSION = require("../../package.json").version;
88
+ }
89
+ catch (e) {
90
+ console.warn("获取SDK版本号失败:", e);
91
+ }
84
92
  var BUSINESS = /** @class */ (function () {
85
93
  function BUSINESS(sdkType) {
94
+ this.sdkObj = {}; //具体的sdk对象
86
95
  this.isApp = false; //是否是app
87
- this.sdkType = sdkType; // 1 财人汇 2 财信 3 新意 4 联储 5 金圆
96
+ this.version = SDK_VERSION; //SDK版本号(crh-jssdk包版本)
97
+ this.sdkType = sdkType; // 1 财人汇 2 财信 3 新意 4 联储 5 金圆 6 诚通 7 东亚前海
88
98
  this.bridge = sdkType === 2 ? utils_1.cxBridge : utils_1.globalBridge; // 初始化Bridge实例
89
99
  }
90
100
  BUSINESS.prototype.initSdk = function () {
91
101
  return __awaiter(this, void 0, void 0, function () {
92
- var Obj, _a, _b, _c, _d, _e, _f, error_1, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t;
93
- var _u, _v;
94
- return __generator(this, function (_w) {
95
- switch (_w.label) {
102
+ var Obj, _a, _b, _c, _d, _e, _f, error_1, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
103
+ var _y, _z;
104
+ return __generator(this, function (_0) {
105
+ switch (_0.label) {
96
106
  case 0:
97
107
  console.log("start initSdk");
98
108
  Obj = __assign(__assign(__assign({}, base_1.default), profession_1.default), user_1.default);
99
109
  if (!(+this.sdkType === 1)) return [3 /*break*/, 1];
100
110
  this.sdkObj = Obj;
101
- return [3 /*break*/, 23];
111
+ return [3 /*break*/, 27];
102
112
  case 1:
103
113
  if (!(+this.sdkType === 2)) return [3 /*break*/, 5];
104
114
  _a = this;
105
115
  _b = [__assign({}, Obj)];
106
116
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./base/crh-app-sdk-cxzq")); })];
107
117
  case 2:
108
- _c = [__assign.apply(void 0, _b.concat([(_w.sent()).default]))];
118
+ _c = [__assign.apply(void 0, _b.concat([(_0.sent()).default]))];
109
119
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-cxzq")); })];
110
120
  case 3:
111
- _d = [__assign.apply(void 0, _c.concat([(_w.sent()).default]))];
121
+ _d = [__assign.apply(void 0, _c.concat([(_0.sent()).default]))];
112
122
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./profession/crh-app-sdk-cxzq")); })];
113
123
  case 4:
114
- _a.sdkObj = __assign.apply(void 0, _d.concat([(_w.sent()).default]));
124
+ _a.sdkObj = __assign.apply(void 0, _d.concat([(_0.sent()).default]));
115
125
  console.log(this.sdkObj, "sdkObj---jssdk");
116
126
  this.isApp = this.sdkObj.isApp();
117
127
  this.webviewType = this.sdkObj.webviewType();
118
- return [3 /*break*/, 23];
128
+ return [3 /*break*/, 27];
119
129
  case 5:
120
130
  if (!(+this.sdkType === 3)) return [3 /*break*/, 7];
121
131
  _e = this;
122
132
  _f = [{}];
123
133
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-cy")); })];
124
134
  case 6:
125
- _e.sdkObj = __assign.apply(void 0, _f.concat([(_w.sent()).default]));
135
+ _e.sdkObj = __assign.apply(void 0, _f.concat([(_0.sent()).default]));
126
136
  console.log(this.sdkObj, "sdkObj---jssdk");
127
137
  this.isApp = this.sdkObj.isApp();
128
138
  this.webviewType = this.sdkObj.webviewType();
129
- return [3 /*break*/, 23];
139
+ return [3 /*break*/, 27];
130
140
  case 7:
131
141
  if (!(+this.sdkType === 4)) return [3 /*break*/, 15];
132
142
  console.log("初始化联储证券SDK...");
133
143
  if (!(typeof window !== "undefined" &&
134
144
  window.ClientTHS &&
135
145
  typeof window.ClientTHS.init === "function")) return [3 /*break*/, 11];
136
- _w.label = 8;
146
+ _0.label = 8;
137
147
  case 8:
138
- _w.trys.push([8, 10, , 11]);
139
- return [4 /*yield*/, ((_v = (_u = window.ClientTHS).init) === null || _v === void 0 ? void 0 : _v.call(_u))];
148
+ _0.trys.push([8, 10, , 11]);
149
+ return [4 /*yield*/, ((_z = (_y = window.ClientTHS).init) === null || _z === void 0 ? void 0 : _z.call(_y))];
140
150
  case 9:
141
- _w.sent();
151
+ _0.sent();
142
152
  console.log("ClientTHS初始化完成");
143
153
  return [3 /*break*/, 11];
144
154
  case 10:
145
- error_1 = _w.sent();
155
+ error_1 = _0.sent();
146
156
  console.error("ClientTHS初始化失败:", error_1);
147
157
  return [3 /*break*/, 11];
148
158
  case 11:
@@ -151,18 +161,18 @@ var BUSINESS = /** @class */ (function () {
151
161
  _h = [__assign({}, Obj)];
152
162
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./base/crh-app-sdk-lczq")); })];
153
163
  case 12:
154
- _j = [__assign.apply(void 0, _h.concat([(_w.sent()).default]))];
164
+ _j = [__assign.apply(void 0, _h.concat([(_0.sent()).default]))];
155
165
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-lczq")); })];
156
166
  case 13:
157
- _k = [__assign.apply(void 0, _j.concat([(_w.sent()).default]))];
167
+ _k = [__assign.apply(void 0, _j.concat([(_0.sent()).default]))];
158
168
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./profession/crh-app-sdk-lczq")); })];
159
169
  case 14:
160
170
  // 联储证券使用Bridge版本
161
- _g.sdkObj = __assign.apply(void 0, _k.concat([(_w.sent()).default]));
171
+ _g.sdkObj = __assign.apply(void 0, _k.concat([(_0.sent()).default]));
162
172
  console.log("sdkObj---jssdk(Bridge版本)", this.sdkObj);
163
173
  this.isApp = this.sdkObj.isApp();
164
174
  this.webviewType = this.sdkObj.webviewType();
165
- return [3 /*break*/, 23];
175
+ return [3 /*break*/, 27];
166
176
  case 15:
167
177
  if (!(+this.sdkType === 5)) return [3 /*break*/, 19];
168
178
  console.log("初始化金圆统一SDK...");
@@ -171,35 +181,55 @@ var BUSINESS = /** @class */ (function () {
171
181
  _m = [__assign({}, Obj)];
172
182
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./base/crh-app-sdk-jy")); })];
173
183
  case 16:
174
- _o = [__assign.apply(void 0, _m.concat([(_w.sent()).default]))];
184
+ _o = [__assign.apply(void 0, _m.concat([(_0.sent()).default]))];
175
185
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-jy")); })];
176
186
  case 17:
177
- _p = [__assign.apply(void 0, _o.concat([(_w.sent()).default]))];
187
+ _p = [__assign.apply(void 0, _o.concat([(_0.sent()).default]))];
178
188
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./profession/crh-app-sdk-jy")); })];
179
189
  case 18:
180
190
  // 金圆统一使用Bridge版本
181
- _l.sdkObj = __assign.apply(void 0, _p.concat([(_w.sent()).default]));
191
+ _l.sdkObj = __assign.apply(void 0, _p.concat([(_0.sent()).default]));
182
192
  console.log("sdkObj---jssdk(金圆统一)", this.sdkObj);
183
193
  this.isApp = this.sdkObj.isApp();
184
194
  this.webviewType = this.sdkObj.webviewType();
185
- return [3 /*break*/, 23];
195
+ return [3 /*break*/, 27];
186
196
  case 19:
187
197
  if (!(+this.sdkType === 6)) return [3 /*break*/, 23];
188
198
  _q = this;
189
199
  _r = [__assign({}, Obj)];
190
200
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./base/crh-app-sdk-cctgsc")); })];
191
201
  case 20:
192
- _s = [__assign.apply(void 0, _r.concat([(_w.sent()).default]))];
202
+ _s = [__assign.apply(void 0, _r.concat([(_0.sent()).default]))];
193
203
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-cctgsc")); })];
194
204
  case 21:
195
- _t = [__assign.apply(void 0, _s.concat([(_w.sent()).default]))];
205
+ _t = [__assign.apply(void 0, _s.concat([(_0.sent()).default]))];
196
206
  return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./profession/crh-app-sdk-cctgsc")); })];
197
207
  case 22:
198
- _q.sdkObj = __assign.apply(void 0, _t.concat([(_w.sent()).default]));
208
+ _q.sdkObj = __assign.apply(void 0, _t.concat([(_0.sent()).default]));
199
209
  console.log("sdkObj---jssdk(诚通证券)", this.sdkObj);
200
210
  this.isApp = this.sdkObj.isApp();
201
- _w.label = 23;
211
+ return [3 /*break*/, 27];
202
212
  case 23:
213
+ if (!(+this.sdkType === 7)) return [3 /*break*/, 27];
214
+ console.log("初始化东亚前海SDK...");
215
+ // 东亚前海与金圆统一使用相同的Bridge版本
216
+ _u = this;
217
+ _v = [__assign({}, Obj)];
218
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./base/crh-app-sdk-dyqhzq")); })];
219
+ case 24:
220
+ _w = [__assign.apply(void 0, _v.concat([(_0.sent()).default]))];
221
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-dyqhzq")); })];
222
+ case 25:
223
+ _x = [__assign.apply(void 0, _w.concat([(_0.sent()).default]))];
224
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./profession/crh-app-sdk-dyqhzq")); })];
225
+ case 26:
226
+ // 东亚前海与金圆统一使用相同的Bridge版本
227
+ _u.sdkObj = __assign.apply(void 0, _x.concat([(_0.sent()).default]));
228
+ console.log("sdkObj---jssdk(东亚前海)", this.sdkObj);
229
+ this.isApp = this.sdkObj.isApp();
230
+ this.webviewType = this.sdkObj.webviewType();
231
+ _0.label = 27;
232
+ case 27:
203
233
  // 设置Bridge实例到sdkObj中,供各模块使用
204
234
  if (this.sdkObj) {
205
235
  this.sdkObj.bridge = this.bridge;
@@ -378,18 +408,20 @@ var BUSINESS = /** @class */ (function () {
378
408
  }
379
409
  return this.sdkObj.doOpenBrowser(url);
380
410
  };
381
- //跳转财人汇SDK页面(仅限金圆统一jy使用)
411
+ //跳转财人汇SDK页面(仅限金圆统一jy和东亚前海dyqhzq使用)
382
412
  BUSINESS.prototype.doOpenCRHSDK = function (params) {
383
413
  if (!this.sdkObj.doOpenCRHSDK) {
384
414
  return (0, utils_1.empty)("doOpenCRHSDK");
385
415
  }
386
416
  return this.sdkObj.doOpenCRHSDK(params);
387
417
  };
388
- //获取Bridge实例(仅限联储证券lczq和金圆统一jy使用)
418
+ //获取Bridge实例(仅限联储证券lczq、金圆统一jy和东亚前海dyqhzq使用)
389
419
  BUSINESS.prototype.getBridge = function () {
390
- // 只允许 sdkType === 4 (联储证券) 和 sdkType === 5 (金圆统一) 使用 getBridge 方法
391
- if (+this.sdkType !== 4 && +this.sdkType !== 5) {
392
- console.warn("getBridge method is only available for lczq (sdkType: 4) or jy (sdkType: 5)");
420
+ // 只允许 sdkType === 4 (联储证券)、sdkType === 5 (金圆统一) 和 sdkType === 7 (东亚前海) 使用
421
+ if (+this.sdkType !== 4 &&
422
+ +this.sdkType !== 5 &&
423
+ +this.sdkType !== 7) {
424
+ console.warn("getBridge method is only available for lczq (sdkType: 4), jy (sdkType: 5) or dyqhzq (sdkType: 7)");
393
425
  return null;
394
426
  }
395
427
  if (!this.sdkObj.getBridge) {
@@ -166,21 +166,8 @@ exports.default = {
166
166
  return __generator(this, function (_b) {
167
167
  window.getDeviceInfoCB = function (jsonStr) {
168
168
  console.log(jsonStr);
169
- var obj = JSON.parse(jsonStr);
170
- var appDeviceInfo = {};
171
- if (obj.mac) { // 如果mac为空则取deviceId iphone取不到mac
172
- appDeviceInfo.mac_address = obj.mac.replace(/:/g, '');
173
- }
174
- if (obj.deviceId && obj.deviceId !== null && obj.deviceId !== 'null') { // deviceId或为空则取mac的值 android逻辑
175
- appDeviceInfo.device_id = obj.deviceId.replace(/AndroidId|IMEI|null/g, '');
176
- }
177
- appDeviceInfo.imsi = obj.imsi;
178
- appDeviceInfo.ICCID = obj.ICCID;
179
- appDeviceInfo.lanIP = obj.lanIP || obj.ipAddress;
180
- appDeviceInfo.mobileNo = obj.mobileNo;
181
- appDeviceInfo.appVersion = obj.appVersion;
182
169
  resolve({
183
- info: appDeviceInfo,
170
+ info: jsonStr,
184
171
  });
185
172
  delete window.getDeviceInfoCB;
186
173
  };
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ /**
3
+ * @description 东亚前海业务模块 - Bridge版本
4
+ * 基于WebViewJavascriptBridge实现业务功能
5
+ */
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ var utils_1 = require("../utils");
58
+ var crh_app_sdk_dyqhzq_1 = __importDefault(require("../base/crh-app-sdk-dyqhzq"));
59
+ exports.default = {
60
+ /**
61
+ * 获取客户端用户和设备信息
62
+ * @param type 调用类型:'fetch'仅获取信息,'login'未登录时拉起登录
63
+ */
64
+ getDeviceInfo: function () {
65
+ return __awaiter(this, arguments, void 0, function (type) {
66
+ var params, response, deviceInfo_1, mobileInfo, error_1;
67
+ if (type === void 0) { type = "fetch"; }
68
+ return __generator(this, function (_a) {
69
+ switch (_a.label) {
70
+ case 0:
71
+ console.log("东亚前海 getDeviceInfo----");
72
+ _a.label = 1;
73
+ case 1:
74
+ _a.trys.push([1, 3, , 4]);
75
+ params = {
76
+ info_type: "wt",
77
+ call_type: type,
78
+ info_complete_check: "0",
79
+ key_type: "",
80
+ needEncryptTraceInfo: true,
81
+ };
82
+ console.log("东亚前海调用getDeviceInfo,参数:", params);
83
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "getUserInfoByRsa", params)];
84
+ case 2:
85
+ response = _a.sent();
86
+ console.log("东亚前海 getDeviceInfo 返回:", response);
87
+ deviceInfo_1 = {};
88
+ if (response && response.mobile_hardware) {
89
+ mobileInfo = response.mobile_hardware
90
+ .replace("HDInfo=", "")
91
+ .split(",");
92
+ mobileInfo.forEach(function (item) {
93
+ var index = item.indexOf(":");
94
+ if (index > 0) {
95
+ deviceInfo_1[item.substring(0, index)] = item.substring(index + 1);
96
+ }
97
+ });
98
+ }
99
+ return [2 /*return*/, __assign(__assign({}, response), { deviceInfo: deviceInfo_1, isLogin: (response === null || response === void 0 ? void 0 : response.login_status) === "1", token: (response === null || response === void 0 ? void 0 : response.param) || "", fundAccount: "", mobile: deviceInfo_1.RMRN || "" })];
100
+ case 3:
101
+ error_1 = _a.sent();
102
+ console.error("东亚前海获取设备信息失败:", error_1);
103
+ return [2 /*return*/, {
104
+ error: (error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || "未知错误",
105
+ }];
106
+ case 4: return [2 /*return*/];
107
+ }
108
+ });
109
+ });
110
+ },
111
+ /**
112
+ * 银证转账
113
+ * @param version 支持半屏转账的版本号
114
+ * @param callbackName 回调函数
115
+ */
116
+ goBankTransfer: function () {
117
+ return __awaiter(this, arguments, void 0, function (version, callbackName) {
118
+ if (version === void 0) { version = "7.2.0"; }
119
+ return __generator(this, function (_a) {
120
+ try {
121
+ console.log("东亚前海调用银证转账");
122
+ location.href = "client://hxsecurity.frame.router/jiaoyi_dyh_yzzz";
123
+ return [2 /*return*/, { success: true }];
124
+ }
125
+ catch (error) {
126
+ console.error("东亚前海银证转账失败:", error);
127
+ return [2 /*return*/, { success: false, error: error }];
128
+ }
129
+ return [2 /*return*/];
130
+ });
131
+ });
132
+ },
133
+ /**
134
+ * app各种方法:交易密码登录框、银证转账充值等
135
+ * @param url action路径
136
+ * @param callback 回调函数
137
+ */
138
+ businessAlertView: function (url, callback) {
139
+ console.log("东亚前海 businessAlertView:", url, callback);
140
+ return Promise.resolve({
141
+ error_no: "-1",
142
+ error_info: "东亚前海暂不支持该方法",
143
+ });
144
+ },
145
+ /**
146
+ * 产品收藏
147
+ * @param params 收藏参数
148
+ */
149
+ setCollect: function (params) {
150
+ return __awaiter(this, void 0, void 0, function () {
151
+ return __generator(this, function (_a) {
152
+ console.log("东亚前海 setCollect", params);
153
+ return [2 /*return*/, Promise.resolve({
154
+ error_no: "-1",
155
+ error_info: "东亚前海暂不支持产品收藏功能",
156
+ })];
157
+ });
158
+ });
159
+ },
160
+ /**
161
+ * 查询产品收藏
162
+ * @param params 查询参数
163
+ */
164
+ queryCollect: function (params) {
165
+ return __awaiter(this, void 0, void 0, function () {
166
+ return __generator(this, function (_a) {
167
+ console.log("东亚前海 queryCollect", params);
168
+ return [2 /*return*/, Promise.resolve({
169
+ error_no: "-1",
170
+ error_info: "东亚前海暂不支持产品收藏功能",
171
+ })];
172
+ });
173
+ });
174
+ },
175
+ /**
176
+ * 设置原生状态栏颜色
177
+ * @param params 状态栏参数
178
+ */
179
+ setStatusBar: function (params) {
180
+ return __awaiter(this, void 0, void 0, function () {
181
+ return __generator(this, function (_a) {
182
+ console.log("东亚前海 profession setStatusBar", params);
183
+ return [2 /*return*/, crh_app_sdk_dyqhzq_1.default.setStatusBar(params)];
184
+ });
185
+ });
186
+ },
187
+ /**
188
+ * 跳转财人汇SDK页面(东亚前海定制)
189
+ * @param params 跳转参数
190
+ */
191
+ doOpenCRHSDK: function (params) {
192
+ return __awaiter(this, void 0, void 0, function () {
193
+ return __generator(this, function (_a) {
194
+ return [2 /*return*/, crh_app_sdk_dyqhzq_1.default.doOpenCRHSDK(params)];
195
+ });
196
+ });
197
+ },
198
+ };
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -88,48 +77,6 @@ exports.default = {
88
77
  });
89
78
  }); });
90
79
  },
91
- // 聚财获取登录信息或者未登录调起登录,调登录type传callback_after_login
92
- jcLogin: function (type) {
93
- if (type === void 0) { type = "fetch"; }
94
- return new Promise(function (resolve) {
95
- if (crh_app_sdk_cxzq_1.default.webviewType().isNewJuCai) {
96
- var data_1 = { info_type: "wt", call_type: type, key_type: "" };
97
- crh_app_sdk_cxzq_1.default.actionMap.setupWebViewJavascriptBridge(function (bridge) {
98
- bridge.callHandler("getUserInfoByRsa", data_1, function (info) {
99
- console.log("getNewJcDeviceInfoCB:", info);
100
- var deviceInfo = {};
101
- var mobileInfo = info.mobile_hardware
102
- ? info.mobile_hardware.replace("HDInfo=", "").split(",")
103
- : [];
104
- mobileInfo.forEach(function (item) {
105
- var index = item.indexOf(":");
106
- deviceInfo[item.substring(0, index)] = item.substring(index + 1);
107
- });
108
- console.log("deviceInfo:", deviceInfo);
109
- resolve(__assign(__assign({}, info), { deviceInfo: deviceInfo, isLogin: info.login_status === "1", token: info.param, fundAccount: "", mobile: deviceInfo.RMRN || "" }));
110
- });
111
- });
112
- }
113
- else if (crh_app_sdk_cxzq_1.default.webviewType().isOldJuCai) {
114
- window.oldJuCaiLoginCB = function (token) {
115
- console.log("oldJuCaiLoginCB:", token);
116
- resolve({
117
- isLogin: !!token,
118
- token: JSON.parse(JSON.stringify(token)),
119
- fundAccount: "",
120
- mobile: "",
121
- });
122
- };
123
- if (utils_1.ios) {
124
- window.location.href = "objc://getUser/?oldJuCaiLoginCB";
125
- }
126
- else if (window.jtoJHandle) {
127
- window.jtoJHandle.getUser("oldJuCaiLoginCB");
128
- }
129
- }
130
- });
131
- },
132
- // app各种方法:交易密码登录框、银证转账充值等。
133
80
  // 参数格式:http://action:actionID/?target=tType&callback=funName&param=requestJSON
134
81
  businessAlertView: function (url, callback) {
135
82
  console.log("businessAlertView:", url, callback);
@@ -158,19 +105,20 @@ exports.default = {
158
105
  // 乐赚交易登录回调获取token准备传入u001
159
106
  window.userLogin = function (username, password, onUse, loginFlag) {
160
107
  console.log("userLogin:", username, password, onUse, loginFlag);
161
- // if (username !== '' && username !== 'null' && username !== '(null)' && loginFlag !== '1') {
162
- // resolve({
163
- // username,
164
- // password,
165
- // login_status: '1',
166
- // });
167
- // } else {
168
- // resolve({
169
- // username,
170
- // password,
171
- // login_status: '0',
172
- // });
173
- // }
108
+ if (username !== '' && username !== 'null' && username !== '(null)' && loginFlag !== '1') {
109
+ resolve({
110
+ username: username,
111
+ password: password,
112
+ login_status: '1',
113
+ });
114
+ }
115
+ else {
116
+ resolve({
117
+ username: username,
118
+ password: password,
119
+ login_status: '0',
120
+ });
121
+ }
174
122
  };
175
123
  if (utils_1.ios) {
176
124
  window.location.href = "objc://crhLogin/?userLogin";
@@ -0,0 +1,231 @@
1
+ "use strict";
2
+ /**
3
+ * @description 东亚前海用户模块 - Bridge版本
4
+ * 基于WebViewJavascriptBridge实现与东亚前海App的通信
5
+ */
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ var utils_1 = require("../utils");
55
+ // 东亚前海 AppId,与金圆统一配置一致
56
+ var APPID = "b5bae4daa01aa0c2";
57
+ exports.default = {
58
+ /**
59
+ * 获取用户登录信息(静默获取,不会弹窗)
60
+ * @param callType 调用类型:'fetch'仅获取信息,'login'未登录时拉起登录
61
+ * @param callback 可选回调函数,收到用户信息后触发
62
+ * @returns 用户信息,包含加密的param字段(需后端解密)
63
+ */
64
+ getUser: function () {
65
+ return __awaiter(this, arguments, void 0, function (callType, callback) {
66
+ var extractResult, params, response, error_1;
67
+ if (callType === void 0) { callType = "fetch"; }
68
+ return __generator(this, function (_a) {
69
+ switch (_a.label) {
70
+ case 0:
71
+ extractResult = function (response) {
72
+ if (!response) {
73
+ return {
74
+ login_status: "0",
75
+ isLogin: false,
76
+ token: "",
77
+ fundAccount: "",
78
+ mobile: "",
79
+ error: "无响应",
80
+ };
81
+ }
82
+ var encryptedParam = response.param || "";
83
+ if (response.login_status === "0") {
84
+ return {
85
+ login_status: "0",
86
+ isLogin: false,
87
+ token: encryptedParam,
88
+ param: encryptedParam,
89
+ fundAccount: "",
90
+ mobile: "",
91
+ };
92
+ }
93
+ else if (response.login_status === "1") {
94
+ return __assign(__assign({}, response), { isLogin: true, token: encryptedParam, param: encryptedParam, fundAccount: "", mobile: "" });
95
+ }
96
+ return __assign(__assign({}, response), { isLogin: false, token: encryptedParam, param: encryptedParam, mobile: "" });
97
+ };
98
+ params = {
99
+ info_type: "wt",
100
+ call_type: "login",
101
+ key_type: "crh_mall",
102
+ };
103
+ console.log("getUser:", params);
104
+ if (callback) {
105
+ utils_1.dyqhzqBridge.bridgeCallHandlerCallback("getUserInfoByRsa", params, function (response) {
106
+ console.log("东亚前海 getUser 返回:", response);
107
+ callback(extractResult(response));
108
+ });
109
+ return [2 /*return*/, extractResult({})];
110
+ }
111
+ _a.label = 1;
112
+ case 1:
113
+ _a.trys.push([1, 3, , 4]);
114
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "getUserInfoByRsa", params)];
115
+ case 2:
116
+ response = _a.sent();
117
+ console.log("东亚前海 getUser 返回:", response);
118
+ return [2 /*return*/, extractResult(response)];
119
+ case 3:
120
+ error_1 = _a.sent();
121
+ console.error("东亚前海获取用户信息失败:", error_1);
122
+ return [2 /*return*/, {
123
+ login_status: "0",
124
+ isLogin: false,
125
+ token: "",
126
+ fundAccount: "",
127
+ mobile: "",
128
+ error: (error_1 === null || error_1 === void 0 ? void 0 : error_1.message) || "未知错误",
129
+ }];
130
+ case 4: return [2 /*return*/];
131
+ }
132
+ });
133
+ });
134
+ },
135
+ /**
136
+ * 获取交易登录Token(未登录时会弹出登录框)
137
+ * 返回加密的param字段,传入 tradeFlowLogin 接口进行登录
138
+ * @param appidOrOptions 应用ID字符串,或包含appId和accountType的对象
139
+ * @param callback 可选回调函数,登录完成后会收到token参数
140
+ * @returns 加密的token字符串(param),用于传给后端解密登录
141
+ */
142
+ getTradeLoginToken: function (appidOrOptions, callback) {
143
+ return __awaiter(this, void 0, void 0, function () {
144
+ var appId, params, extractToken_1, response, error_2;
145
+ return __generator(this, function (_a) {
146
+ switch (_a.label) {
147
+ case 0:
148
+ _a.trys.push([0, 2, , 3]);
149
+ appId = APPID;
150
+ if (typeof appidOrOptions === "string") {
151
+ appId = appidOrOptions;
152
+ }
153
+ else if (appidOrOptions && typeof appidOrOptions === "object") {
154
+ appId = appidOrOptions.appId || APPID;
155
+ }
156
+ params = {
157
+ info_type: "wt",
158
+ call_type: "login",
159
+ key_type: "crh_mall",
160
+ };
161
+ console.log("东亚前海获取交易登录Token,参数:", params);
162
+ extractToken_1 = function (response) {
163
+ if (response && response.login_status === "1" && response.param) {
164
+ console.log("东亚前海获取交易Token成功,返回加密param");
165
+ return response.param;
166
+ }
167
+ console.log("东亚前海获取交易Token失败,响应:", response);
168
+ return "";
169
+ };
170
+ if (callback) {
171
+ utils_1.dyqhzqBridge.bridgeCallHandlerCallback("getUserInfoByRsa", params, function (response) {
172
+ callback(extractToken_1(response));
173
+ });
174
+ return [2 /*return*/, ""];
175
+ }
176
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "getUserInfoByRsa", params)];
177
+ case 1:
178
+ response = _a.sent();
179
+ console.log("东亚前海 getUserInfoByRsa 登录响应:", response);
180
+ return [2 /*return*/, extractToken_1(response)];
181
+ case 2:
182
+ error_2 = _a.sent();
183
+ console.error("东亚前海获取交易登录Token失败:", error_2);
184
+ if (callback) {
185
+ callback("");
186
+ }
187
+ return [2 /*return*/, ""];
188
+ case 3: return [2 /*return*/];
189
+ }
190
+ });
191
+ });
192
+ },
193
+ /**
194
+ * 获取手机号Token
195
+ * @returns 加密的token字符串
196
+ */
197
+ getPhoneToken: function () {
198
+ return __awaiter(this, void 0, void 0, function () {
199
+ var params, response, error_3;
200
+ return __generator(this, function (_a) {
201
+ switch (_a.label) {
202
+ case 0:
203
+ _a.trys.push([0, 2, , 3]);
204
+ params = {
205
+ info_type: "hq",
206
+ call_type: "fetch",
207
+ key_type: utils_1.ios ? "bh_zhfx" : "",
208
+ };
209
+ console.log("东亚前海获取手机号Token,参数:", params);
210
+ return [4 /*yield*/, utils_1.dyqhzqBridge.bridgeCallHandler("Promise", "getUserInfoByRsa", params)];
211
+ case 1:
212
+ response = _a.sent();
213
+ if (response && response.param) {
214
+ console.log("东亚前海获取手机号Token成功");
215
+ return [2 /*return*/, "".concat(response.param, ",").concat(APPID)];
216
+ }
217
+ else {
218
+ console.log("东亚前海获取手机号Token失败");
219
+ return [2 /*return*/, ""];
220
+ }
221
+ return [3 /*break*/, 3];
222
+ case 2:
223
+ error_3 = _a.sent();
224
+ console.error("东亚前海获取手机号Token失败:", error_3);
225
+ return [2 /*return*/, ""];
226
+ case 3: return [2 /*return*/];
227
+ }
228
+ });
229
+ });
230
+ },
231
+ };
@@ -42,7 +42,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
42
42
  }
43
43
  };
44
44
  Object.defineProperty(exports, "__esModule", { value: true });
45
- exports.JYClientTHS = exports.cxBridge = exports.jyBridge = exports.globalBridge = exports.CxBridge = exports.Bridge = exports.JYBridge = void 0;
45
+ exports.JYClientTHS = exports.cxBridge = exports.dyqhzqBridge = exports.jyBridge = exports.globalBridge = exports.CxBridge = exports.Bridge = exports.JYBridge = void 0;
46
46
  // 在脚本加载时立即初始化全局标记
47
47
  if (typeof window !== 'undefined') {
48
48
  window.WVJBCallbacks = window.WVJBCallbacks || [];
@@ -192,9 +192,9 @@ var JYClientTHS = {
192
192
  };
193
193
  exports.JYClientTHS = JYClientTHS;
194
194
  /**
195
- * 金圆统一专用Bridge类
195
+ * 金圆统一、东亚前海专用Bridge类
196
196
  * 使用ClientTHS方式进行桥接通信
197
- * sdkType: 5
197
+ * sdkType: 5(金圆统一)、7(东亚前海)
198
198
  */
199
199
  var JYBridge = /** @class */ (function () {
200
200
  function JYBridge() {
@@ -806,6 +806,8 @@ exports.CxBridge = CxBridge;
806
806
  exports.globalBridge = new Bridge();
807
807
  // 金圆统一专用Bridge实例
808
808
  exports.jyBridge = new JYBridge();
809
+ // 东亚前海与金圆统一使用相同的ClientTHS Bridge协议
810
+ exports.dyqhzqBridge = exports.jyBridge;
809
811
  // 诚通证券专用Bridge实例
810
812
  exports.cxBridge = new CxBridge();
811
813
  // 导出给window对象,方便调试
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.JYClientTHS = exports.jyBridge = exports.JYBridge = exports.globalBridge = exports.Bridge = exports.cxBridge = exports.getContractTime = exports.parsOpStation = exports.ios = exports.empty = exports.common = void 0;
39
+ exports.JYClientTHS = exports.jyBridge = exports.JYBridge = exports.globalBridge = exports.dyqhzqBridge = exports.Bridge = exports.cxBridge = exports.getContractTime = exports.parsOpStation = exports.ios = exports.empty = exports.common = void 0;
40
40
  exports.checkIsHarmonyOS = checkIsHarmonyOS;
41
41
  exports.harmonyCallJsHandler = harmonyCallJsHandler;
42
42
  //调用sdk通用方法
@@ -167,6 +167,7 @@ exports.getContractTime = getContractTime;
167
167
  var bridge_1 = require("./bridge");
168
168
  Object.defineProperty(exports, "cxBridge", { enumerable: true, get: function () { return bridge_1.cxBridge; } });
169
169
  Object.defineProperty(exports, "Bridge", { enumerable: true, get: function () { return bridge_1.Bridge; } });
170
+ Object.defineProperty(exports, "dyqhzqBridge", { enumerable: true, get: function () { return bridge_1.dyqhzqBridge; } });
170
171
  Object.defineProperty(exports, "globalBridge", { enumerable: true, get: function () { return bridge_1.globalBridge; } });
171
172
  Object.defineProperty(exports, "JYBridge", { enumerable: true, get: function () { return bridge_1.JYBridge; } });
172
173
  Object.defineProperty(exports, "jyBridge", { enumerable: true, get: function () { return bridge_1.jyBridge; } });
package/package.json CHANGED
@@ -1,10 +1,15 @@
1
1
  {
2
2
  "name": "crh-jssdk",
3
- "version": "1.0.37",
3
+ "version": "1.0.39",
4
4
  "description": "crh-jssdk",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
7
- "build": "node build.js"
7
+ "build": "node build.js",
8
+ "release": "bumpp --commit --tag --push && npm publish",
9
+ "release:patch": "bumpp patch --commit --tag --push && npm publish",
10
+ "release:minor": "bumpp minor --commit --tag --push && npm publish",
11
+ "release:major": "bumpp major --commit --tag --push && npm publish",
12
+ "prepublishOnly": "npm run build"
8
13
  },
9
14
  "keywords": [
10
15
  "typescript"
@@ -15,6 +20,7 @@
15
20
  "author": "crh-fe",
16
21
  "license": "ISC",
17
22
  "devDependencies": {
23
+ "bumpp": "^12.2.0",
18
24
  "typescript": "^5.5.2"
19
25
  },
20
26
  "files": [