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

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

回答

收藏

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

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

生物统计学

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

检查支持

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

Variable :

  1. import { biometry } from '@telegram-apps/sdk';- L* x5 U- H& W  f0 K* e

  2. 1 y! H* @$ [* I+ a+ O4 H# A$ s9 X( ^4 R
  3. biometry.isSupported(); // boolean
复制代码

Functions :

  1. import { isBiometrySupported } from '@telegram-apps/sdk';2 H: e/ P( c9 ~( `3 a- {
  2.   m4 k. \1 Z5 J, u$ U% t8 o4 m
  3. isBiometrySupported(); // boolean
复制代码
安装

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

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

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

Variable :

  1. try {
    5 H) x8 r; ^& r  V1 A% J
  2.   const promise = biometry.mount();9 C8 s; F8 c+ ^6 W
  3.   biometry.isMounting(); // true6 j/ j. P" Y+ T  A
  4.   await promise;
    3 l" x9 U1 l: i3 D4 u' \2 h
  5.   biometry.isMounting(); // false& |8 o( K% X0 o- R/ @6 O+ u
  6.   biometry.isMounted(); // true
    % g! G( U. J3 M, P% P) ?" P
  7. } catch (err) {
    * x% B- J5 c% x1 d+ R
  8.   biometry.mountError(); // equals "err"+ r: a8 l7 U( y0 V
  9.   biometry.isMounting(); // false
    4 H( }7 R) ]  }) l: S- h& U3 b# Y
  10.   biometry.isMounted(); // false& r6 t, v  \. q# @9 k1 N+ k  k
  11. }
复制代码

Functions :

  1. import {
    3 @* i/ o% z. `" ]
  2.   mountBiometry,+ G/ H; P1 s4 _# P- `, d( w* _# P$ p
  3.   isBiometryMounting,
    " x0 x1 y, Z0 w9 [
  4.   isBiometryMounted,
    # Z* Q7 i* ~7 I, s' P+ ^+ S! ?
  5.   biometryMountError,7 ?& J  r! B0 W
  6. } from '@telegram-apps/sdk';. E' w# `" C% c# Q

  7. ) _; F: W8 S6 u9 o3 N9 e
  8. try {
    ) g4 L7 l0 ?7 x- d. \1 P$ G7 p
  9.   const promise = mountBiometry();
    * R9 N& e7 {5 [2 `9 o( z" n
  10.   isBiometryMounting(); // true3 ^5 L( Z, H* p2 D1 A
  11.   await promise;
      I  z% F5 g  u& N) R
  12.   isBiometryMounting(); // false- C# ^, N. |7 R1 |3 q) M) \% H
  13.   isBiometryMounted(); // true
    ( U8 Y8 C- z4 d# ]: b
  14. } catch (err) {4 N$ J& B# l$ ?) c* Y: P& D$ b! ?
  15.   biometryMountError(); // equals "err"4 W2 E: ^! C4 F2 f+ o; e# ]: ~
  16.   isBiometryMounting(); // false. u2 x( s  U  h- f( X4 H
  17.   isBiometryMounted(); // false9 E1 e, }; A+ x, W3 M$ F8 D! I* d
  18. }
复制代码
/ }+ d+ Z" b6 ]' F6 P- R

要卸载,请使用 unmount 方法:

Variable :

  1. biometry.unmount();' |7 z! v* R4 W/ ^/ s, p
  2. biometry.isMounted(); // false
复制代码

Functions :

  1. import { unmountBiometry, isBiometryMounted } from '@telegram-apps/sdk';# F" V4 j- n4 y- z8 h* {0 X  h2 c
  2. + |' C( u0 j% G7 l! \+ l
  3. unmountBiometry();
    & j# K& c5 D: s
  4. isBiometryMounted(); // false
复制代码
申请生物测量访问

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

Variable :

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

Functions :

  1. import { requestBiometryAccess } from '@telegram-apps/sdk';
    % _; w/ V; I& q! ?! e  s, }, D5 L

  2. & u( F: k, W. b' T- n) J- D
  3. const granted = await requestBiometryAccess(); // boolean
复制代码
认证

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

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

  • reason?: string: 要向用户显示的身份验证原因。
    " R) P. t) v8 x1 N2 w

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

Variable :

  1. const { status, token } = await biometry.authenticate({
    : D. o9 C4 D; ~' F
  2.   reason: 'Please!',
    8 H. ]8 t  c  T. ~& c
  3. });' s: I! ]  E0 `- i, f* M
  4. 0 j+ I5 Y; f! Y/ l
  5. if (status === 'authorized') {" V' c1 T- f$ f! G7 R$ U
  6.   console.log(`Authorized. Token: ${token}`);
    2 Z$ F! h/ m* X+ ?
  7. } else {
    0 m0 y3 `. L. u) Z
  8.   console.log('Not authorized');* c" `1 A9 W+ s* I* e
  9. }
复制代码

Functions :

  1. import { authenticateBiometry } from '@telegram-apps/sdk';# _$ {7 _3 W" y6 s. I2 a) ]
  2. . h) T; x5 h7 ^+ h
  3. const { status, token } = await authenticateBiometry({
    ; `+ Y$ R0 i. A' W+ U! z
  4.   reason: 'Please!',+ h  X) {6 H7 y. x9 `- e4 y
  5. });& t, F& j, p* o5 ^  r
  6. 8 ?$ l: A4 X+ s& o! b
  7. if (status === 'authorized') {- d) x9 u( U5 V* Q; t+ a& L) P  W- k
  8.   console.log(`Authorized. Token: ${token}`);# j* Z2 c/ G/ F) d
  9. } else {4 R7 T: t# o' R( n
  10.   console.log('Not authorized');& t7 _0 [$ m( ^5 F( L: [( ^. A
  11. }
复制代码
更新令牌

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

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

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

Variable :

  1. const updated = await biometry.updateToken({: `) u2 X, ]  u  H/ X
  2.   reason: 'Want to delete',
    + m7 Z% t8 ?9 ]# r0 A6 Y
  3. });
    4 C0 F. B& P; h. V8 c

  4. 6 `$ ~* j' N  D, x% X' {
  5. await biometry.updateToken({
    0 V# j$ e+ z  k
  6.   reason: 'Will set a new one',9 ]6 y" H6 Z( O7 i: O! x- K6 }
  7.   token: 'new token',: j/ B5 ]  _  M, J; U0 }* ^3 B
  8. });
复制代码

Functions :

  1. import { updateBiometryToken } from '@telegram-apps/sdk';
    2 x) q1 z4 f6 h3 h
  2. - Y' \! s/ C  T" W& o% ]
  3. const updated = await updateBiometryToken({* B4 p0 \  \' v  Z4 b5 o
  4.   reason: 'Want to delete',
    ! g& \3 v3 k% \+ E7 q/ }/ e. `# i% d
  5. });2 j# I% Y. \, K3 d) P+ E7 u3 x

  6. 5 g* Y% X  y4 T6 Q  o; v. q5 X/ u& r
  7. await updateBiometryToken({
    " d: c8 A9 L( v" l) J4 ^$ W
  8.   reason: 'Will set a new one',/ x. u: A6 [3 T
  9.   token: 'new token',
    1 ~; q) A: {) H* j* X
  10. });
复制代码
打开设置

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

Variable :

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

Functions :

  1. import { openBiometrySettings } from '@telegram-apps/sdk';
    : y! z9 e8 }2 J
  2. " z% ~) H+ ~; ^, U7 m9 a
  3. openBiometrySettings();
复制代码

* i. w9 k6 Q2 B. b' Q" X' E+ V! d+ P- R; B0 l
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则