@lambo-design-mobile/lambo-js-bridge 1.0.0-beta.25 → 1.0.0-beta.27
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/CHANGELOG.md +14 -0
- package/README.md +71 -0
- package/demo/index.vue +72 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
|
+
## [1.0.0-beta.27](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/compare/@lambo-design-mobile/lambo-js-bridge@1.0.0-beta.26...@lambo-design-mobile/lambo-js-bridge@1.0.0-beta.27) (2025-03-25)
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
### ✨ Features | 新功能
|
|
6
|
+
|
|
7
|
+
* **@lambo-design-mobile/js-bridge:** 生物识别接口新增入参 ([b276936](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/b276936a9a6b80c6e96cb00ae3e08fc8ad466795))
|
|
8
|
+
|
|
9
|
+
## [1.0.0-beta.26](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/compare/@lambo-design-mobile/lambo-js-bridge@1.0.0-beta.25...@lambo-design-mobile/lambo-js-bridge@1.0.0-beta.26) (2025-03-19)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### ✨ Features | 新功能
|
|
13
|
+
|
|
14
|
+
* **@lambo-design-mobile/js-bridge:** 新增生物认证接口 ([cfb8f94](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/commit/cfb8f9453f3ec769463b1cacc8fa9ab5b32e808f))
|
|
15
|
+
|
|
2
16
|
## [1.0.0-beta.25](http://git.inspur.com/ecbh/lambo-design/lambo-design/-/compare/@lambo-design-mobile/lambo-js-bridge@1.0.0-beta.24...@lambo-design-mobile/lambo-js-bridge@1.0.0-beta.25) (2025-03-10)
|
|
3
17
|
|
|
4
18
|
|
package/README.md
CHANGED
|
@@ -450,3 +450,74 @@ async downloadFile() {
|
|
|
450
450
|
| 属性 | 类型 | 默认值 | 必填 | 支持平台 | 说明 |
|
|
451
451
|
|-----------|--|----------|-----|----------|---------|
|
|
452
452
|
| filePath | string | | 是 | Yuntu | 录音文件的路径 |
|
|
453
|
+
|
|
454
|
+
### 生物认证
|
|
455
|
+
|
|
456
|
+
提供本地生物特征认证能力,支持指纹/面容识别验证,支持查询设备可用生物特征类型。
|
|
457
|
+
|
|
458
|
+
``` javascript
|
|
459
|
+
async localAuth() {
|
|
460
|
+
try {
|
|
461
|
+
const options = {
|
|
462
|
+
localizedReason: 'A1',
|
|
463
|
+
biometricHint: 'A2',
|
|
464
|
+
cancelButton: 'A3',
|
|
465
|
+
signInTitle: 'A4'
|
|
466
|
+
}
|
|
467
|
+
const result = await this.$lamboJsBridge.localAuthPlugin(options)
|
|
468
|
+
this.localAuthResult = JSON.stringify(result, null, 2)
|
|
469
|
+
console.log('localAuthResult:', result);
|
|
470
|
+
this.availableBiometrics = '' // 清空另一个结果
|
|
471
|
+
} catch (error) {
|
|
472
|
+
// 结构化错误处理
|
|
473
|
+
const errorMessage = error.msg || error.message || '未知错误';
|
|
474
|
+
const authId = error.authId || '未知设备';
|
|
475
|
+
|
|
476
|
+
this.localAuthResult = `认证失败:${errorMessage},authId:${authId}`;
|
|
477
|
+
console.error('完整错误信息:', error);
|
|
478
|
+
}
|
|
479
|
+
},
|
|
480
|
+
async getAvailableBiometrics() {
|
|
481
|
+
try {
|
|
482
|
+
const result = await this.$lamboJsBridge.getAvailableBiometrics()
|
|
483
|
+
this.availableBiometrics = JSON.stringify(result, null, 2)
|
|
484
|
+
this.localAuthResult = '' // 清空另一个结果
|
|
485
|
+
} catch (error) {
|
|
486
|
+
this.availableBiometrics = `获取失败: ${error.message}`
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### 参数说明
|
|
492
|
+
|
|
493
|
+
`localAuthPlugin params`: Object
|
|
494
|
+
|
|
495
|
+
| 属性 | 类型 | 默认值 | 必填 | 支持平台 | 说明 |
|
|
496
|
+
|-----------|--------|-------|-----|----------|---------------------|
|
|
497
|
+
| localizedReason | string | 认证 | 否 | Yuntu | 自定义生物识别验证弹窗居中正文文字 |
|
|
498
|
+
| biometricHint | string | 扫描指纹进行身份验证 | 否 | Yuntu | 自定义生物识别验证弹窗副标题文字 |
|
|
499
|
+
| cancelButton | string | 取消 | 否 | Yuntu | 自定义生物识别验证弹窗取消位置按钮文字 |
|
|
500
|
+
| signInTitle | string | 指纹验证 | 否 | Yuntu | 自定义生物识别验证弹窗标题 |
|
|
501
|
+
|
|
502
|
+
<br>
|
|
503
|
+
|
|
504
|
+
`getAvailableBiometrics`: 无需参数
|
|
505
|
+
|
|
506
|
+
### 返回说明
|
|
507
|
+
|
|
508
|
+
`localAuthPlugin: Promise<Object>`
|
|
509
|
+
|
|
510
|
+
| 属性 | 类型 | 默认值 | 必填 | 支持平台 | 说明 |
|
|
511
|
+
|--------|--|----------|-----|----------|------|
|
|
512
|
+
| msg | string | | 是 | Yuntu | 返回信息 |
|
|
513
|
+
| authId | string | | 是 | Yuntu | 设备ID |
|
|
514
|
+
|
|
515
|
+
<br>
|
|
516
|
+
|
|
517
|
+
`getAvailableBiometrics: Promise<Object>`
|
|
518
|
+
|
|
519
|
+
| 属性 | 类型 | 默认值 | 必填 | 支持平台 | 说明 |
|
|
520
|
+
|---------------------|--------|----------|-----|----------|---------|
|
|
521
|
+
| msg | string | | 是 | Yuntu | 返回信息 |
|
|
522
|
+
| availableBiometrics | array | | 是 | Yuntu | 支持的生物识别 |
|
|
523
|
+
| authId | string | | 是 | Yuntu | 设备ID |
|
package/demo/index.vue
CHANGED
|
@@ -59,9 +59,28 @@
|
|
|
59
59
|
<van-button @click="downloadFile">下载文件</van-button>
|
|
60
60
|
<p v-if="downloadLink">文件已下载,路径:{{ downloadLink }}</p>
|
|
61
61
|
</demo-block>
|
|
62
|
+
<demo-block title="生物认证">
|
|
63
|
+
<div class="auth-buttons">
|
|
64
|
+
<van-button @click="localAuth" class="auth-button">生物认证</van-button>
|
|
65
|
+
<van-button
|
|
66
|
+
@click="getAvailableBiometrics"
|
|
67
|
+
class="auth-button"
|
|
68
|
+
style="margin-left: 12px"
|
|
69
|
+
>
|
|
70
|
+
获取生物特征
|
|
71
|
+
</van-button>
|
|
72
|
+
</div>
|
|
62
73
|
|
|
74
|
+
<div v-if="localAuthResult" class="result-box">
|
|
75
|
+
<p class="result-title">认证结果:</p>
|
|
76
|
+
<pre><code>{{ localAuthResult }}</code></pre>
|
|
77
|
+
</div>
|
|
63
78
|
|
|
64
|
-
|
|
79
|
+
<div v-if="availableBiometrics" class="result-box">
|
|
80
|
+
<p class="result-title">支持的特征:</p>
|
|
81
|
+
<pre><code>{{ availableBiometrics }}</code></pre>
|
|
82
|
+
</div>
|
|
83
|
+
</demo-block>
|
|
65
84
|
</demo-section>
|
|
66
85
|
</template>
|
|
67
86
|
|
|
@@ -97,6 +116,8 @@ export default {
|
|
|
97
116
|
audioData: null,
|
|
98
117
|
recordingStatus: "not started", // 用于记录当前录音状态
|
|
99
118
|
downloadLink : null,
|
|
119
|
+
localAuthResult: '', // 生物认证结果
|
|
120
|
+
availableBiometrics: '' // 支持的生物特征
|
|
100
121
|
};
|
|
101
122
|
},
|
|
102
123
|
computed: {
|
|
@@ -326,6 +347,37 @@ export default {
|
|
|
326
347
|
console.error('Error initializing key:', error);
|
|
327
348
|
}
|
|
328
349
|
},
|
|
350
|
+
async localAuth() {
|
|
351
|
+
try {
|
|
352
|
+
const options = {
|
|
353
|
+
localizedReason: 'A1',
|
|
354
|
+
biometricHint: 'A2',
|
|
355
|
+
cancelButton: 'A3',
|
|
356
|
+
signInTitle: 'A4'
|
|
357
|
+
}
|
|
358
|
+
const result = await this.$lamboJsBridge.localAuthPlugin(options)
|
|
359
|
+
this.localAuthResult = JSON.stringify(result, null, 2)
|
|
360
|
+
console.log('localAuthResult:', result);
|
|
361
|
+
this.availableBiometrics = '' // 清空另一个结果
|
|
362
|
+
} catch (error) {
|
|
363
|
+
// 结构化错误处理
|
|
364
|
+
const errorMessage = error.msg || error.message || '未知错误';
|
|
365
|
+
const authId = error.authId || '未知设备';
|
|
366
|
+
|
|
367
|
+
this.localAuthResult = `认证失败:${errorMessage},authId:${authId}`;
|
|
368
|
+
console.error('完整错误信息:', error);
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
async getAvailableBiometrics() {
|
|
372
|
+
try {
|
|
373
|
+
|
|
374
|
+
const result = await this.$lamboJsBridge.getAvailableBiometrics()
|
|
375
|
+
this.availableBiometrics = JSON.stringify(result, null, 2)
|
|
376
|
+
this.localAuthResult = '' // 清空另一个结果
|
|
377
|
+
} catch (error) {
|
|
378
|
+
this.availableBiometrics = `获取失败: ${error.message}`
|
|
379
|
+
}
|
|
380
|
+
},
|
|
329
381
|
},
|
|
330
382
|
mounted() {
|
|
331
383
|
window.updateAudioDisplay = this.updateAudioDisplay;
|
|
@@ -379,4 +431,23 @@ code {
|
|
|
379
431
|
max-width: 100%;
|
|
380
432
|
border-radius: 4px;
|
|
381
433
|
}
|
|
434
|
+
.auth-buttons {
|
|
435
|
+
margin-bottom: 16px;
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.auth-button {
|
|
439
|
+
min-width: 120px;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
.result-box {
|
|
443
|
+
margin-top: 12px;
|
|
444
|
+
border-top: 1px solid #eee;
|
|
445
|
+
padding-top: 12px;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
.result-title {
|
|
449
|
+
color: #666;
|
|
450
|
+
font-size: 12px;
|
|
451
|
+
margin-bottom: 8px;
|
|
452
|
+
}
|
|
382
453
|
</style>
|