English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE คนไทย Français русский

回答

收藏

Telegram 小程序 | TypeScript @telegram-apps/sdk @2.x | 组件 | 生物统计学

开源社区 开源社区 11662 人阅读 | 0 人回复 | 2025-02-24

生物统计学

负责 Telegram 迷你应用程序生物测量功能的💠组件

检查支持

要检查当前 Telegram 小应用程序版本是否支持生物测量,请使用 isSupported 方法:

Variable :

  1. import { biometry } from '@telegram-apps/sdk';
    7 u! v$ Y1 E. R4 R7 X0 g4 n
  2. + x3 f2 R( s5 `+ X2 V
  3. biometry.isSupported(); // boolean
复制代码

Functions :

  1. import { isBiometrySupported } from '@telegram-apps/sdk';, r2 c% k, t0 c  B
  2. 3 D/ J! c" y7 G9 K
  3. isBiometrySupported(); // boolean
复制代码
安装

在使用组件之前,必须先安装组件。

这个过程是异步的,因为生物测量数据需要向 Telegram 应用程序申请。 在进程中,isMounting 信号将被设置为 true,并在完成后更新为 false。

如果挂载成功,isMounted 信号将设为 true。 如果出现错误,mountError 信号将反映错误。

Variable :

  1. try {
    / w6 k) w2 @  [3 [
  2.   const promise = biometry.mount();
    . Z& e4 M; D: |3 C% P& j% b
  3.   biometry.isMounting(); // true
      I1 S% G5 V! @
  4.   await promise;
    : {8 g8 }# L9 M# _' N
  5.   biometry.isMounting(); // false
    6 z' \4 @0 q) K5 s" e4 l7 g
  6.   biometry.isMounted(); // true
    , \2 U  r* s& ^
  7. } catch (err) {3 N6 J1 B6 o4 n0 a
  8.   biometry.mountError(); // equals "err"
    2 o! O2 G- }7 _) ?8 F7 |
  9.   biometry.isMounting(); // false- p4 R0 t0 C) n
  10.   biometry.isMounted(); // false* }- Y6 T2 w5 x& v2 X( l
  11. }
复制代码

Functions :

  1. import {
    . a/ Y3 u# p6 z3 a
  2.   mountBiometry,
    6 c$ z6 B- `+ D5 C7 ^) L/ \+ n& Z3 Q
  3.   isBiometryMounting,) M# o( E+ |0 @& X( i
  4.   isBiometryMounted,
    & t+ ?4 L* O% K8 P0 }6 ^
  5.   biometryMountError,( F1 P; M( E1 f. d  I' F' L
  6. } from '@telegram-apps/sdk';1 o4 A7 C; U1 `

  7. " n8 D+ U7 W% H
  8. try {
    ) j' w4 k3 s; t7 t
  9.   const promise = mountBiometry();0 ?  I$ [0 ]3 R+ B+ _
  10.   isBiometryMounting(); // true; P- L! f* R' j' C6 k3 x
  11.   await promise;
    3 h7 T" k3 @7 |' K- u1 N3 {
  12.   isBiometryMounting(); // false! E& P* ]; ~/ X# B) [: _  i
  13.   isBiometryMounted(); // true
    , k6 g% ?* p- p  X# k9 p
  14. } catch (err) {
    2 B4 ]6 H% y8 i
  15.   biometryMountError(); // equals "err"
    - o( L8 F; P; ~! H" W
  16.   isBiometryMounting(); // false
    7 d- _3 x6 c- n3 u6 r! Y2 M
  17.   isBiometryMounted(); // false( O; a2 a7 O- b" M
  18. }
复制代码

* E1 {  [5 y' G6 h; j& |( H1 k

要卸载,请使用 unmount 方法:

Variable :

  1. biometry.unmount();( W$ D$ p; d) h, \
  2. biometry.isMounted(); // false
复制代码

Functions :

  1. import { unmountBiometry, isBiometryMounted } from '@telegram-apps/sdk';5 ^: m) W0 ^* T* p2 }! R

  2. 8 V' C. ~# H, l
  3. unmountBiometry();
    ' f6 t9 d5 k: K( K8 `
  4. isBiometryMounted(); // false
复制代码
申请生物测量访问

要请求生物测量访问,请使用 requestAccess 方法。 它返回一个带有布尔 值的 promise,表示用户是否允许访问。

Variable :

  1. const granted = await biometry.requestAccess(); // boolean
复制代码

Functions :

  1. import { requestBiometryAccess } from '@telegram-apps/sdk';- b+ @) r' ?$ e

  2. ) Y9 C: W# R( U, l( O
  3. const granted = await requestBiometryAccess(); // boolean
复制代码
认证

要验证用户身份并检索先前保存的令牌,请使用 authenticate 方法。

它可选择接受一个具有以下属性的对象:

  • reason?: string: 要向用户显示的身份验证原因。
    1 F! [* l) @( ^1 o

该方法返回一个包含 status ('failed' 或'authorized')的对象,如果成功, token: string。

Variable :

  1. const { status, token } = await biometry.authenticate({! m: f3 k; R9 R( S  f
  2.   reason: 'Please!',
    $ m0 ]7 l7 }& y* h# t
  3. });& h7 z% M5 M' L- x" z
  4. * S3 g4 f! E; o4 K# Q* @
  5. if (status === 'authorized') {4 W8 @- B% N$ u# `, S7 O! t
  6.   console.log(`Authorized. Token: ${token}`);
    . |9 I" }5 V" s1 H2 K
  7. } else {6 }' Q0 y" |" [5 Y" n
  8.   console.log('Not authorized');: }. k& A7 P5 F+ r/ i* Q' [
  9. }
复制代码

Functions :

  1. import { authenticateBiometry } from '@telegram-apps/sdk';
    - o+ C" u: V( Y6 f+ P
  2. 4 A$ F' A8 c& b& H: @" `
  3. const { status, token } = await authenticateBiometry({
    - `8 X6 ]0 a- \3 R& g1 @  j4 y1 D# C
  4.   reason: 'Please!',& I- Z* \0 H) e0 |7 |/ J
  5. });
    5 g! N! Q' O6 J+ @2 u" c  w
  6. - R& _4 X8 u  N2 ~2 [9 c9 F. N# j# ^
  7. if (status === 'authorized') {
    7 _! ?7 e6 F, I9 w3 j+ V. @
  8.   console.log(`Authorized. Token: ${token}`);& O! M, G8 S& j- j, R- b( s
  9. } else {
    4 s' }( n/ }  T% c8 n+ A
  10.   console.log('Not authorized');
    6 ?, w, B( i$ W$ X, Q/ w, P5 A% u
  11. }
复制代码
更新令牌

要更新本地安全存储中存储的令牌,请使用 updateToken 方法。

该方法接受一个带有 reason 和 token 属性的可选对象。 如果 未提供令牌,则会删除现有令牌。

它会返回一个带有布尔值的 promise,表示是否进行了任何更改。

Variable :

  1. const updated = await biometry.updateToken({
    ; L% g3 p6 G0 _& M' Q% B& c3 k6 s# F8 t
  2.   reason: 'Want to delete',
    , c6 U/ \! _6 |' _/ o* W; J
  3. });
    2 C2 G3 f# m* e9 O: d. [. P
  4. ' J! [, b0 v! Y# z. g" j; \
  5. await biometry.updateToken({
      W; G% |6 O7 }! C
  6.   reason: 'Will set a new one',. k; k8 m( N, ^8 h
  7.   token: 'new token',  W8 ^6 B, S$ Z+ ^
  8. });
复制代码

Functions :

  1. import { updateBiometryToken } from '@telegram-apps/sdk';: J. x# L1 o4 f+ N8 `3 A

  2. 5 q+ Y+ F; c/ m! S+ g6 p# E
  3. const updated = await updateBiometryToken({
    " \3 o& E% S% h! o& j, E) u
  4.   reason: 'Want to delete',- N8 q- Z# a; z5 ?- X, s
  5. });0 e5 [0 C: ^3 ^3 ?1 s. Q1 _  l/ q. ~
  6. & ]! c8 F8 r. M) P+ m% r
  7. await updateBiometryToken({2 \. n- S2 U/ x( c; M
  8.   reason: 'Will set a new one',
    6 M$ |- i9 l- S- a
  9.   token: 'new token',
    $ g& n! v8 h7 }: o& W; T
  10. });
复制代码
打开设置

要打开生物测量相关设置模式,请使用 openSettings 方法。 该方法只能通过 响应用户交互来触发。

Variable :

  1. biometry.openSettings();
复制代码

Functions :

  1. import { openBiometrySettings } from '@telegram-apps/sdk';
    & ~! z9 {* E7 J: `+ i, a8 W7 ^5 m
  2. 0 ^7 G* ]( W7 K3 f# b
  3. openBiometrySettings();
复制代码

5 `6 }1 r1 r/ q" h* m5 O5 U
) R; u& @+ q% b# P+ R6 T! o
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则