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

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

回答

收藏

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

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

生物统计学

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

检查支持

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

Variable :

  1. import { biometry } from '@telegram-apps/sdk';7 T% e7 j2 j% ~5 A, i" k
  2. : {9 m5 O+ e4 l. y4 c6 x) I
  3. biometry.isSupported(); // boolean
复制代码

Functions :

  1. import { isBiometrySupported } from '@telegram-apps/sdk';
    + C7 o. u' g  [8 T# ~

  2. 5 K& z8 n- e/ e4 T. \1 W) J
  3. isBiometrySupported(); // boolean
复制代码
安装

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

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

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

Variable :

  1. try {& i- n7 Q; _5 [% T  q% E
  2.   const promise = biometry.mount();  U% m7 u2 A: D" `3 j
  3.   biometry.isMounting(); // true3 S3 b* a( k$ b" ?3 m
  4.   await promise;, V) J% A( a5 R. N/ H7 c- R
  5.   biometry.isMounting(); // false
      x7 D! Q3 X5 \8 A$ {. P
  6.   biometry.isMounted(); // true
    4 |7 V5 Q! @0 g  c
  7. } catch (err) {
    7 i* e! t7 e7 \! s4 \6 v- i5 \  P% ~
  8.   biometry.mountError(); // equals "err"
    % C  ?- E- q5 h) B! H9 h
  9.   biometry.isMounting(); // false$ z* g+ f: V3 J' b) H
  10.   biometry.isMounted(); // false# M& i1 h6 z5 V' j
  11. }
复制代码

Functions :

  1. import {; {8 P1 `6 I, \6 W, P/ o4 J
  2.   mountBiometry,
    6 F; }/ _' u! p" ?2 S; g8 l2 d
  3.   isBiometryMounting,
    5 n- T* K! W7 T% V  c, ?
  4.   isBiometryMounted,
    5 W$ w2 i9 X* I6 G
  5.   biometryMountError,& }3 `7 V5 P2 O1 F: q- |
  6. } from '@telegram-apps/sdk';# ]$ g  D7 s8 f& d, Q
  7. 2 ?' g% d! I! o2 M+ Z& _
  8. try {6 d% l& f5 |3 R; V
  9.   const promise = mountBiometry();
    $ \! E+ ?6 x4 x/ _+ Y; _
  10.   isBiometryMounting(); // true/ E) M+ \: q- A  k; H4 e
  11.   await promise;
    # M9 B& b+ W, w
  12.   isBiometryMounting(); // false
    1 L+ Z- @# {6 E( u; V- k4 T
  13.   isBiometryMounted(); // true
    * Z( k4 Q: P7 w; l
  14. } catch (err) {
    1 D0 C) w, w1 ^
  15.   biometryMountError(); // equals "err"
    * e& ~0 I0 \/ A* [- L8 k
  16.   isBiometryMounting(); // false# M0 T, b1 W* ~
  17.   isBiometryMounted(); // false2 C1 S, m; s$ z6 N
  18. }
复制代码
2 Y; f; W3 C. v$ i% ~% [! }

要卸载,请使用 unmount 方法:

Variable :

  1. biometry.unmount();3 y( `" s; y) y) P
  2. biometry.isMounted(); // false
复制代码

Functions :

  1. import { unmountBiometry, isBiometryMounted } from '@telegram-apps/sdk';$ r) W8 S, V7 A: S! b
  2. , p( F) R0 L) o# V" \5 L: @
  3. unmountBiometry();
    . \( J4 W0 `; n' \
  4. isBiometryMounted(); // false
复制代码
申请生物测量访问

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

Variable :

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

Functions :

  1. import { requestBiometryAccess } from '@telegram-apps/sdk';
      \4 A4 p+ A9 E' T" B0 {* s
  2. 4 L% n% ?6 L# C. X2 j  C  g6 m$ D
  3. const granted = await requestBiometryAccess(); // boolean
复制代码
认证

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

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

  • reason?: string: 要向用户显示的身份验证原因。* C1 y6 ^) Z, \) h. r0 R, O- ?, k

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

Variable :

  1. const { status, token } = await biometry.authenticate({
    + T" j( J$ V  k
  2.   reason: 'Please!',
    3 O0 D6 J* |. _  N
  3. });* W+ r( `6 ]8 I' o- i

  4. + g6 c7 y- ?% U6 y3 e
  5. if (status === 'authorized') {
    * v# O% ?) A% Y6 Q; E1 [; @: g
  6.   console.log(`Authorized. Token: ${token}`);# z+ P9 {; e" b
  7. } else {
    1 g# Q( @2 s; ]
  8.   console.log('Not authorized');
    ( G& m; w2 r( y4 v- G; E
  9. }
复制代码

Functions :

  1. import { authenticateBiometry } from '@telegram-apps/sdk';
    ) f3 x1 ^2 K! F; u9 y& j% Q' q

  2. - V5 g# b4 a3 I0 p
  3. const { status, token } = await authenticateBiometry({& @+ e2 r. ?) e2 B
  4.   reason: 'Please!',
      {5 i1 g2 p3 V
  5. });8 B6 e8 F( z0 R" [$ k: j8 U) B  n
  6. ; |  n2 n# o$ x: J* m" s2 f" @
  7. if (status === 'authorized') {
    ( N. H2 o6 ^% L! q; R3 X; y8 D  f
  8.   console.log(`Authorized. Token: ${token}`);
    ' ?' d- o  Z9 b& l
  9. } else {
    & L6 I. N, N" v! _
  10.   console.log('Not authorized');( Y# S% I% T. v/ m# ?
  11. }
复制代码
更新令牌

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

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

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

Variable :

  1. const updated = await biometry.updateToken({5 m+ c. x" S. l: @( G
  2.   reason: 'Want to delete',- Y. M# E, V3 ?6 E
  3. });; g1 L8 P( h7 R6 I) ?
  4. $ S  w: w! |. |! q  e4 G1 Z
  5. await biometry.updateToken({
    % M: E0 r0 _2 e: d/ i
  6.   reason: 'Will set a new one',2 f6 r8 y& O( r6 S! `9 u# n
  7.   token: 'new token',
    . i( `# H* i( ], ]
  8. });
复制代码

Functions :

  1. import { updateBiometryToken } from '@telegram-apps/sdk';
    " J; j, @+ h: v0 z3 u4 |

  2. 5 E+ m+ f: L2 x2 p% y' s
  3. const updated = await updateBiometryToken({
    1 }4 q: f' w  J1 l2 k
  4.   reason: 'Want to delete',
    2 {  u  {2 t: R. ^
  5. });
    3 B/ u: C; y4 T# S
  6. 0 H; v2 m- [4 P
  7. await updateBiometryToken({
    0 H5 b3 q; h. v
  8.   reason: 'Will set a new one',! T' r1 s0 H8 |; L
  9.   token: 'new token',
    ) m) U9 u3 {- ]/ d0 ~. \- i
  10. });
复制代码
打开设置

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

Variable :

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

Functions :

  1. import { openBiometrySettings } from '@telegram-apps/sdk';& c' v( {# w% f- W6 ]3 r  t$ b
  2. % u' @* s8 J1 c0 z$ x# [4 K
  3. openBiometrySettings();
复制代码
$ y1 K: p/ r" B9 A( @; |5 \6 x$ F0 p' O% G

, [! g) T# `2 P
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则