crh-jssdk 0.10.23 → 0.10.25
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.
- package/business/base/crh-app-sdk-lczq.js +290 -0
- package/business/base/crh-app-sdk-lczq.ts +212 -0
- package/business/index.js +49 -12
- package/business/index.ts +42 -3
- package/business/profession/crh-app-sdk-lczq.js +376 -0
- package/business/profession/crh-app-sdk-lczq.ts +18 -0
- package/business/user/crh-app-sdk-lczq.js +212 -0
- package/business/user/crh-app-sdk-lczq.ts +152 -0
- package/business/utils/bridge.js +138 -0
- package/business/utils/bridge.ts +153 -0
- package/business/utils/index.js +5 -1
- package/business/utils/index.ts +3 -0
- package/declare.d.ts +1 -0
- package/dist/business/base/crh-app-sdk-cxzq.js +501 -0
- package/dist/business/base/crh-app-sdk-lczq.js +290 -0
- package/dist/business/base/index.js +50 -0
- package/dist/business/index.js +308 -0
- package/dist/business/profession/crh-app-sdk-cxzq.js +421 -0
- package/dist/business/profession/crh-app-sdk-lczq.js +54 -0
- package/dist/business/profession/index.js +51 -0
- package/dist/business/user/crh-app-sdk-cxzq.js +276 -0
- package/dist/business/user/crh-app-sdk-cy.js +39 -0
- package/dist/business/user/crh-app-sdk-lczq.js +206 -0
- package/dist/business/user/index.js +52 -0
- package/dist/business/utils/bridge.js +138 -0
- package/dist/business/utils/index.js +169 -0
- package/dist/index.js +34 -0
- package/package.json +2 -4
- package/tsconfig.json +1 -1
- package/yalc.lock +1 -1
|
@@ -0,0 +1,290 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
var utils_1 = require("../utils");
|
|
55
|
+
exports.default = {
|
|
56
|
+
/**
|
|
57
|
+
* 检查是否在App环境中
|
|
58
|
+
*/
|
|
59
|
+
isApp: function () {
|
|
60
|
+
var ua = navigator.userAgent;
|
|
61
|
+
console.log(ua);
|
|
62
|
+
return (ua.includes("lczq"));
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* 获取webview类型
|
|
66
|
+
*/
|
|
67
|
+
webviewType: function () {
|
|
68
|
+
var ua = navigator.userAgent;
|
|
69
|
+
return {
|
|
70
|
+
isLCZQ: ua.includes("lczq"),
|
|
71
|
+
isIOS: utils_1.ios,
|
|
72
|
+
isAndroid: /Android/i.test(ua),
|
|
73
|
+
ua: ua,
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
/**
|
|
77
|
+
* 返回到App
|
|
78
|
+
* @param params 返回参数
|
|
79
|
+
*/
|
|
80
|
+
goBack: function () {
|
|
81
|
+
return __awaiter(this, arguments, void 0, function (params) {
|
|
82
|
+
var backParams, error_1;
|
|
83
|
+
if (params === void 0) { params = {}; }
|
|
84
|
+
return __generator(this, function (_a) {
|
|
85
|
+
switch (_a.label) {
|
|
86
|
+
case 0:
|
|
87
|
+
_a.trys.push([0, 2, , 3]);
|
|
88
|
+
backParams = __assign({ type: "webpage" }, params);
|
|
89
|
+
console.log("调用goBack,参数:", backParams);
|
|
90
|
+
return [4 /*yield*/, utils_1.globalBridge.bridgeCallHandler("Promise", "goback", backParams)];
|
|
91
|
+
case 1:
|
|
92
|
+
_a.sent();
|
|
93
|
+
console.log("返回App成功");
|
|
94
|
+
return [3 /*break*/, 3];
|
|
95
|
+
case 2:
|
|
96
|
+
error_1 = _a.sent();
|
|
97
|
+
console.error("返回App失败:", error_1);
|
|
98
|
+
throw error_1;
|
|
99
|
+
case 3: return [2 /*return*/];
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
},
|
|
104
|
+
/**
|
|
105
|
+
* 关闭当前页面
|
|
106
|
+
*/
|
|
107
|
+
closeSJKH: function () {
|
|
108
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
109
|
+
var error_2;
|
|
110
|
+
return __generator(this, function (_a) {
|
|
111
|
+
switch (_a.label) {
|
|
112
|
+
case 0:
|
|
113
|
+
_a.trys.push([0, 2, , 3]);
|
|
114
|
+
return [4 /*yield*/, this.goBack({ type: "component" })];
|
|
115
|
+
case 1:
|
|
116
|
+
_a.sent();
|
|
117
|
+
return [3 /*break*/, 3];
|
|
118
|
+
case 2:
|
|
119
|
+
error_2 = _a.sent();
|
|
120
|
+
console.error("关闭页面失败:", error_2);
|
|
121
|
+
return [3 /*break*/, 3];
|
|
122
|
+
case 3: return [2 /*return*/];
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
},
|
|
127
|
+
/**
|
|
128
|
+
* 通过url打开新的webview打开外部链接
|
|
129
|
+
*/
|
|
130
|
+
goWebview: function (url) {
|
|
131
|
+
var timestamp = new Date().getTime();
|
|
132
|
+
var pinurl = url.includes('?') ? url + '×tamp=' + timestamp : url + '?timestamp=' + timestamp;
|
|
133
|
+
if (utils_1.ios) {
|
|
134
|
+
location.href = "client://hxsecurity.frame.router/browser?url=".concat(encodeURIComponent(pinurl), "&rp_flag_push_to_stack_directly=true&rp_flag_back_to_last_tab=true&rp_flag_finish_when_back_to_last_tab=true&hideNavBar=1&isHiddenNavigationBar=1");
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
location.href = "client://hxsecurity.frame.router/browser?url=".concat(encodeURIComponent(pinurl), "&rp_flag_recreate=true&rp_flag_push_to_stack_directly=true&rp_flag_finish_when_back_to_last_tab=true&hideNavBar=1&isHiddenNavigationBar=1&fontzoom=no");
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
/**
|
|
141
|
+
* 设置原生状态栏颜色
|
|
142
|
+
* @param {object} params
|
|
143
|
+
* @param {string} params.color 状态栏背景颜色,如#ff0000
|
|
144
|
+
* @param {string} params.wordColorStyle 状态栏文字颜色,0 白色,1 黑色
|
|
145
|
+
*/
|
|
146
|
+
setStatusBar: function (params) {
|
|
147
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
148
|
+
var error_3;
|
|
149
|
+
return __generator(this, function (_a) {
|
|
150
|
+
switch (_a.label) {
|
|
151
|
+
case 0:
|
|
152
|
+
console.log("设置状态栏参数:", params);
|
|
153
|
+
_a.label = 1;
|
|
154
|
+
case 1:
|
|
155
|
+
_a.trys.push([1, 3, , 4]);
|
|
156
|
+
// 根据参考文件,使用setStatusBarState方法
|
|
157
|
+
return [4 /*yield*/, utils_1.globalBridge.bridgeCallHandler("Promise", "modifyStatusColor", {
|
|
158
|
+
statusColor: params.color,
|
|
159
|
+
})];
|
|
160
|
+
case 2:
|
|
161
|
+
// 根据参考文件,使用setStatusBarState方法
|
|
162
|
+
_a.sent();
|
|
163
|
+
console.log("设置状态栏颜色成功");
|
|
164
|
+
return [2 /*return*/, { success: true }];
|
|
165
|
+
case 3:
|
|
166
|
+
error_3 = _a.sent();
|
|
167
|
+
console.error("设置状态栏颜色失败:", error_3);
|
|
168
|
+
throw error_3;
|
|
169
|
+
case 4: return [2 /*return*/];
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
},
|
|
174
|
+
/**
|
|
175
|
+
* 分享功能
|
|
176
|
+
* @param params 分享参数
|
|
177
|
+
*/
|
|
178
|
+
share: function (params) {
|
|
179
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
180
|
+
var shareParams, result, error_4;
|
|
181
|
+
return __generator(this, function (_a) {
|
|
182
|
+
switch (_a.label) {
|
|
183
|
+
case 0:
|
|
184
|
+
_a.trys.push([0, 2, , 3]);
|
|
185
|
+
shareParams = __assign({ type: "1", bmpRes: "3" }, params);
|
|
186
|
+
console.log("调用分享,参数:", shareParams);
|
|
187
|
+
return [4 /*yield*/, utils_1.globalBridge.bridgeCallHandler("Promise", "hexinShare", shareParams)];
|
|
188
|
+
case 1:
|
|
189
|
+
result = _a.sent();
|
|
190
|
+
console.log("分享调用成功:", result);
|
|
191
|
+
return [2 /*return*/, result];
|
|
192
|
+
case 2:
|
|
193
|
+
error_4 = _a.sent();
|
|
194
|
+
console.error("分享失败:", error_4);
|
|
195
|
+
throw error_4;
|
|
196
|
+
case 3: return [2 /*return*/];
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
},
|
|
201
|
+
/**
|
|
202
|
+
* 保存图片到相册
|
|
203
|
+
* @param imageData 图片的base64格式字符串
|
|
204
|
+
*/
|
|
205
|
+
saveImageToAlbum: function (imageData) {
|
|
206
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
207
|
+
var params, result, error_5;
|
|
208
|
+
return __generator(this, function (_a) {
|
|
209
|
+
switch (_a.label) {
|
|
210
|
+
case 0:
|
|
211
|
+
_a.trys.push([0, 2, , 3]);
|
|
212
|
+
params = { imageData: imageData };
|
|
213
|
+
console.log("保存图片到相册");
|
|
214
|
+
return [4 /*yield*/, utils_1.globalBridge.bridgeCallHandler("Promise", "saveImageToAlbum", params)];
|
|
215
|
+
case 1:
|
|
216
|
+
result = _a.sent();
|
|
217
|
+
console.log("保存图片成功:", result);
|
|
218
|
+
return [2 /*return*/, result];
|
|
219
|
+
case 2:
|
|
220
|
+
error_5 = _a.sent();
|
|
221
|
+
console.error("保存图片失败:", error_5);
|
|
222
|
+
throw error_5;
|
|
223
|
+
case 3: return [2 /*return*/];
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
},
|
|
228
|
+
/**
|
|
229
|
+
* 拦截Android物理返回键事件,并回调给前端 --- 仅安卓
|
|
230
|
+
*/
|
|
231
|
+
interceptBack: function (callback) {
|
|
232
|
+
try {
|
|
233
|
+
// 联储证券实现
|
|
234
|
+
utils_1.globalBridge.registerHandler("interceptBack", function (data) {
|
|
235
|
+
callback && callback(data);
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
console.error("拦截返回键失败:", error);
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
/**
|
|
243
|
+
* 跳转个股详情页
|
|
244
|
+
*/
|
|
245
|
+
goStockDetail: function (params, type) {
|
|
246
|
+
if (type === void 0) { type = "StockSnap"; }
|
|
247
|
+
var code = params.code, market = params.market;
|
|
248
|
+
var instanceId = "hxqRequestBridge" + Math.floor(Math.random() * 999 + 1);
|
|
249
|
+
var data = {
|
|
250
|
+
instanceId: instanceId,
|
|
251
|
+
type: type,
|
|
252
|
+
params: {
|
|
253
|
+
stockCode: code,
|
|
254
|
+
stockmarket: market,
|
|
255
|
+
},
|
|
256
|
+
cancel: "",
|
|
257
|
+
subscribe: ""
|
|
258
|
+
};
|
|
259
|
+
try {
|
|
260
|
+
utils_1.globalBridge.bridgeCallHandler("", "hxqRequestBridge", data);
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
console.error("跳转个股详情失败:", error);
|
|
264
|
+
}
|
|
265
|
+
},
|
|
266
|
+
/**
|
|
267
|
+
* 获取客户端版本号
|
|
268
|
+
*/
|
|
269
|
+
getVersion: function () {
|
|
270
|
+
var ua = navigator.userAgent.toLowerCase();
|
|
271
|
+
var regex = "";
|
|
272
|
+
regex = /lczq[/_]([\d.]+)/;
|
|
273
|
+
var match = ua.match(regex);
|
|
274
|
+
console.log(match, "===match===");
|
|
275
|
+
if (match) {
|
|
276
|
+
var version = match[1];
|
|
277
|
+
return version;
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
console.warn("version没有找到匹配项");
|
|
281
|
+
return "0.0.0";
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
/**
|
|
285
|
+
* 获取Bridge实例(供其他模块使用)
|
|
286
|
+
*/
|
|
287
|
+
getBridge: function () {
|
|
288
|
+
return utils_1.globalBridge;
|
|
289
|
+
},
|
|
290
|
+
};
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 联储证券基础模块 - Bridge版本
|
|
3
|
+
* 基于WebViewJavascriptBridge实现基础功能
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { globalBridge, ios } from "../utils";
|
|
7
|
+
export default {
|
|
8
|
+
/**
|
|
9
|
+
* 检查是否在App环境中
|
|
10
|
+
*/
|
|
11
|
+
isApp(): boolean {
|
|
12
|
+
const ua = navigator.userAgent;
|
|
13
|
+
console.log(ua);
|
|
14
|
+
return (
|
|
15
|
+
ua.includes("lczq")
|
|
16
|
+
);
|
|
17
|
+
},
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 获取webview类型
|
|
21
|
+
*/
|
|
22
|
+
webviewType() {
|
|
23
|
+
const ua = navigator.userAgent;
|
|
24
|
+
return {
|
|
25
|
+
isLCZQ: ua.includes("lczq"),
|
|
26
|
+
isIOS: ios,
|
|
27
|
+
isAndroid: /Android/i.test(ua),
|
|
28
|
+
ua: ua,
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* 返回到App
|
|
34
|
+
* @param params 返回参数
|
|
35
|
+
*/
|
|
36
|
+
async goBack(params: any = {}): Promise<void> {
|
|
37
|
+
try {
|
|
38
|
+
const backParams = {
|
|
39
|
+
type: "webpage",
|
|
40
|
+
...params,
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
console.log("调用goBack,参数:", backParams);
|
|
44
|
+
await globalBridge.bridgeCallHandler("Promise", "goback", backParams);
|
|
45
|
+
console.log("返回App成功");
|
|
46
|
+
} catch (error) {
|
|
47
|
+
console.error("返回App失败:", error);
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 关闭当前页面
|
|
54
|
+
*/
|
|
55
|
+
async closeSJKH(): Promise<void> {
|
|
56
|
+
try {
|
|
57
|
+
await this.goBack({ type: "component" });
|
|
58
|
+
} catch (error) {
|
|
59
|
+
console.error("关闭页面失败:", error);
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* 通过url打开新的webview打开外部链接
|
|
65
|
+
*/
|
|
66
|
+
goWebview(url: string) {
|
|
67
|
+
const timestamp = new Date().getTime();
|
|
68
|
+
const pinurl = url.includes('?') ? url+'×tamp='+timestamp :url+'?timestamp='+timestamp;
|
|
69
|
+
if (ios) {
|
|
70
|
+
location.href = `client://hxsecurity.frame.router/browser?url=${encodeURIComponent(pinurl)}&rp_flag_push_to_stack_directly=true&rp_flag_back_to_last_tab=true&rp_flag_finish_when_back_to_last_tab=true&hideNavBar=1&isHiddenNavigationBar=1`
|
|
71
|
+
} else {
|
|
72
|
+
location.href = `client://hxsecurity.frame.router/browser?url=${encodeURIComponent(pinurl)}&rp_flag_recreate=true&rp_flag_push_to_stack_directly=true&rp_flag_finish_when_back_to_last_tab=true&hideNavBar=1&isHiddenNavigationBar=1&fontzoom=no`
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* 设置原生状态栏颜色
|
|
78
|
+
* @param {object} params
|
|
79
|
+
* @param {string} params.color 状态栏背景颜色,如#ff0000
|
|
80
|
+
* @param {string} params.wordColorStyle 状态栏文字颜色,0 白色,1 黑色
|
|
81
|
+
*/
|
|
82
|
+
async setStatusBar(params: any) {
|
|
83
|
+
console.log("设置状态栏参数:", params);
|
|
84
|
+
try {
|
|
85
|
+
// 根据参考文件,使用setStatusBarState方法
|
|
86
|
+
await globalBridge.bridgeCallHandler("Promise", "modifyStatusColor", {
|
|
87
|
+
statusColor: params.color,
|
|
88
|
+
});
|
|
89
|
+
console.log("设置状态栏颜色成功");
|
|
90
|
+
return { success: true };
|
|
91
|
+
} catch (error) {
|
|
92
|
+
console.error("设置状态栏颜色失败:", error);
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* 分享功能
|
|
99
|
+
* @param params 分享参数
|
|
100
|
+
*/
|
|
101
|
+
async share(params: {
|
|
102
|
+
type?: string; // "1"分享网页,"2"分享图片
|
|
103
|
+
title?: string;
|
|
104
|
+
content?: string;
|
|
105
|
+
url?: string;
|
|
106
|
+
bmpRes?: string; // 图片来源 1网络图片 2截屏 3默认图片
|
|
107
|
+
bmpUrl?: string;
|
|
108
|
+
}): Promise<any> {
|
|
109
|
+
try {
|
|
110
|
+
const shareParams = {
|
|
111
|
+
type: "1", // 默认分享网页
|
|
112
|
+
bmpRes: "3", // 默认图片
|
|
113
|
+
...params,
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
console.log("调用分享,参数:", shareParams);
|
|
117
|
+
const result = await globalBridge.bridgeCallHandler(
|
|
118
|
+
"Promise",
|
|
119
|
+
"hexinShare",
|
|
120
|
+
shareParams
|
|
121
|
+
);
|
|
122
|
+
console.log("分享调用成功:", result);
|
|
123
|
+
return result;
|
|
124
|
+
} catch (error) {
|
|
125
|
+
console.error("分享失败:", error);
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* 保存图片到相册
|
|
132
|
+
* @param imageData 图片的base64格式字符串
|
|
133
|
+
*/
|
|
134
|
+
async saveImageToAlbum(imageData: string): Promise<any> {
|
|
135
|
+
try {
|
|
136
|
+
const params = { imageData };
|
|
137
|
+
console.log("保存图片到相册");
|
|
138
|
+
const result = await globalBridge.bridgeCallHandler(
|
|
139
|
+
"Promise",
|
|
140
|
+
"saveImageToAlbum",
|
|
141
|
+
params
|
|
142
|
+
);
|
|
143
|
+
console.log("保存图片成功:", result);
|
|
144
|
+
return result;
|
|
145
|
+
} catch (error) {
|
|
146
|
+
console.error("保存图片失败:", error);
|
|
147
|
+
throw error;
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* 拦截Android物理返回键事件,并回调给前端 --- 仅安卓
|
|
153
|
+
*/
|
|
154
|
+
interceptBack(callback: Function) {
|
|
155
|
+
try {
|
|
156
|
+
// 联储证券实现
|
|
157
|
+
globalBridge.registerHandler("interceptBack", (data: any) => {
|
|
158
|
+
callback && callback(data);
|
|
159
|
+
});
|
|
160
|
+
} catch (error) {
|
|
161
|
+
console.error("拦截返回键失败:", error);
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* 跳转个股详情页
|
|
167
|
+
*/
|
|
168
|
+
goStockDetail(params: { code?: string; market?: string }, type: string = "StockSnap") {
|
|
169
|
+
const { code, market } = params;
|
|
170
|
+
let instanceId = "hxqRequestBridge" + Math.floor(Math.random()*999 + 1)
|
|
171
|
+
let data = {
|
|
172
|
+
instanceId: instanceId,
|
|
173
|
+
type,
|
|
174
|
+
params: {
|
|
175
|
+
stockCode: code,
|
|
176
|
+
stockmarket: market,
|
|
177
|
+
},
|
|
178
|
+
cancel: "",
|
|
179
|
+
subscribe: ""
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
globalBridge.bridgeCallHandler("", "hxqRequestBridge", data);
|
|
183
|
+
} catch (error) {
|
|
184
|
+
console.error("跳转个股详情失败:", error);
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* 获取客户端版本号
|
|
190
|
+
*/
|
|
191
|
+
getVersion() {
|
|
192
|
+
const ua = navigator.userAgent.toLowerCase();
|
|
193
|
+
let regex: any = "";
|
|
194
|
+
regex = /lczq[/_]([\d.]+)/;
|
|
195
|
+
const match = ua.match(regex);
|
|
196
|
+
console.log(match, "===match===");
|
|
197
|
+
if (match) {
|
|
198
|
+
const version = match[1];
|
|
199
|
+
return version;
|
|
200
|
+
} else {
|
|
201
|
+
console.warn("version没有找到匹配项");
|
|
202
|
+
return "0.0.0";
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* 获取Bridge实例(供其他模块使用)
|
|
208
|
+
*/
|
|
209
|
+
getBridge() {
|
|
210
|
+
return globalBridge;
|
|
211
|
+
},
|
|
212
|
+
};
|
package/business/index.js
CHANGED
|
@@ -84,48 +84,79 @@ var user_1 = __importDefault(require("./user")); // 用户
|
|
|
84
84
|
var BUSINESS = /** @class */ (function () {
|
|
85
85
|
function BUSINESS(sdkType) {
|
|
86
86
|
this.isApp = false; //是否是app
|
|
87
|
-
this.sdkType = sdkType; // 1 财人汇 2 财信 3 新意
|
|
87
|
+
this.sdkType = sdkType; // 1 财人汇 2 财信 3 新意 4联储
|
|
88
|
+
this.bridge = utils_1.globalBridge; // 初始化Bridge实例
|
|
88
89
|
}
|
|
89
90
|
BUSINESS.prototype.initSdk = function () {
|
|
90
91
|
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
-
var Obj, _a, _b, _c, _d, _e, _f;
|
|
92
|
-
return __generator(this, function (
|
|
93
|
-
switch (
|
|
92
|
+
var Obj, _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
93
|
+
return __generator(this, function (_l) {
|
|
94
|
+
switch (_l.label) {
|
|
94
95
|
case 0:
|
|
95
96
|
console.log("start initSdk");
|
|
96
97
|
Obj = __assign(__assign(__assign({}, base_1.default), profession_1.default), user_1.default);
|
|
97
98
|
if (!(+this.sdkType === 1)) return [3 /*break*/, 1];
|
|
98
99
|
this.sdkObj = Obj;
|
|
99
|
-
return [3 /*break*/,
|
|
100
|
+
return [3 /*break*/, 11];
|
|
100
101
|
case 1:
|
|
101
102
|
if (!(+this.sdkType === 2)) return [3 /*break*/, 5];
|
|
102
103
|
_a = this;
|
|
103
104
|
_b = [__assign({}, Obj)];
|
|
104
105
|
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./base/crh-app-sdk-cxzq")); })];
|
|
105
106
|
case 2:
|
|
106
|
-
_c = [__assign.apply(void 0, _b.concat([(
|
|
107
|
+
_c = [__assign.apply(void 0, _b.concat([(_l.sent()).default]))];
|
|
107
108
|
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-cxzq")); })];
|
|
108
109
|
case 3:
|
|
109
|
-
_d = [__assign.apply(void 0, _c.concat([(
|
|
110
|
+
_d = [__assign.apply(void 0, _c.concat([(_l.sent()).default]))];
|
|
110
111
|
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./profession/crh-app-sdk-cxzq")); })];
|
|
111
112
|
case 4:
|
|
112
|
-
_a.sdkObj = __assign.apply(void 0, _d.concat([(
|
|
113
|
+
_a.sdkObj = __assign.apply(void 0, _d.concat([(_l.sent()).default]));
|
|
113
114
|
console.log(this.sdkObj, "sdkObj---jssdk");
|
|
114
115
|
this.isApp = this.sdkObj.isApp();
|
|
115
116
|
this.webviewType = this.sdkObj.webviewType();
|
|
116
|
-
return [3 /*break*/,
|
|
117
|
+
return [3 /*break*/, 11];
|
|
117
118
|
case 5:
|
|
118
119
|
if (!(+this.sdkType === 3)) return [3 /*break*/, 7];
|
|
119
120
|
_e = this;
|
|
120
121
|
_f = [{}];
|
|
121
122
|
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-cy")); })];
|
|
122
123
|
case 6:
|
|
123
|
-
_e.sdkObj = __assign.apply(void 0, _f.concat([(
|
|
124
|
+
_e.sdkObj = __assign.apply(void 0, _f.concat([(_l.sent()).default]));
|
|
124
125
|
console.log(this.sdkObj, "sdkObj---jssdk");
|
|
125
126
|
this.isApp = this.sdkObj.isApp();
|
|
126
127
|
this.webviewType = this.sdkObj.webviewType();
|
|
127
|
-
|
|
128
|
+
return [3 /*break*/, 11];
|
|
128
129
|
case 7:
|
|
130
|
+
if (!(+this.sdkType === 4)) return [3 /*break*/, 11];
|
|
131
|
+
console.log("初始化联储证券SDK...");
|
|
132
|
+
// 联储证券使用Bridge版本
|
|
133
|
+
_g = this;
|
|
134
|
+
_h = [__assign({}, Obj)];
|
|
135
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./base/crh-app-sdk-lczq")); })];
|
|
136
|
+
case 8:
|
|
137
|
+
_j = [__assign.apply(void 0, _h.concat([(_l.sent()).default]))];
|
|
138
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./user/crh-app-sdk-lczq")); })];
|
|
139
|
+
case 9:
|
|
140
|
+
_k = [__assign.apply(void 0, _j.concat([(_l.sent()).default]))];
|
|
141
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("./profession/crh-app-sdk-lczq")); })];
|
|
142
|
+
case 10:
|
|
143
|
+
// 联储证券使用Bridge版本
|
|
144
|
+
_g.sdkObj = __assign.apply(void 0, _k.concat([(_l.sent()).default]));
|
|
145
|
+
console.log("sdkObj---jssdk(Bridge版本)", this.sdkObj);
|
|
146
|
+
this.isApp = this.sdkObj.isApp();
|
|
147
|
+
this.webviewType = this.sdkObj.webviewType();
|
|
148
|
+
// 异步等待Bridge准备就绪,但不阻塞初始化
|
|
149
|
+
this.bridge.waitForReady().then(function () {
|
|
150
|
+
console.log("Bridge通信已准备就绪");
|
|
151
|
+
}).catch(function (error) {
|
|
152
|
+
console.warn("Bridge初始化超时或失败:", error);
|
|
153
|
+
});
|
|
154
|
+
_l.label = 11;
|
|
155
|
+
case 11:
|
|
156
|
+
// 设置Bridge实例到sdkObj中,供各模块使用
|
|
157
|
+
if (this.sdkObj) {
|
|
158
|
+
this.sdkObj.bridge = this.bridge;
|
|
159
|
+
}
|
|
129
160
|
console.log("sdk初始化了", this.sdkType);
|
|
130
161
|
return [2 /*return*/];
|
|
131
162
|
}
|
|
@@ -253,7 +284,7 @@ var BUSINESS = /** @class */ (function () {
|
|
|
253
284
|
};
|
|
254
285
|
//银证转账
|
|
255
286
|
BUSINESS.prototype.goBankTransfer = function (version, callbackName) {
|
|
256
|
-
if (version === void 0) { version =
|
|
287
|
+
if (version === void 0) { version = "7.2.0"; }
|
|
257
288
|
if (!this.sdkObj.goBankTransfer) {
|
|
258
289
|
return (0, utils_1.empty)("goBankTransfer");
|
|
259
290
|
}
|
|
@@ -266,6 +297,12 @@ var BUSINESS = /** @class */ (function () {
|
|
|
266
297
|
}
|
|
267
298
|
return this.sdkObj.share(params);
|
|
268
299
|
};
|
|
300
|
+
BUSINESS.prototype.goBack = function () {
|
|
301
|
+
if (!this.sdkObj.goBack) {
|
|
302
|
+
return (0, utils_1.empty)("goBack");
|
|
303
|
+
}
|
|
304
|
+
return this.sdkObj.goBack();
|
|
305
|
+
};
|
|
269
306
|
return BUSINESS;
|
|
270
307
|
}());
|
|
271
308
|
exports.default = BUSINESS;
|