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

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

回答

收藏

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

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

生物统计学

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

检查支持

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

Variable :

  1. import { biometry } from '@telegram-apps/sdk';
    * d0 o+ G" h, j# v$ D
  2. 0 x9 X+ ?7 R( O/ p7 t
  3. biometry.isSupported(); // boolean
复制代码

Functions :

  1. import { isBiometrySupported } from '@telegram-apps/sdk';6 R2 D- g; P* a4 j
  2. # J( |: i) R) K3 x; O+ w" w
  3. isBiometrySupported(); // boolean
复制代码
安装

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

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

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

Variable :

  1. try {2 R6 t0 |1 z4 E: l/ ]$ H3 Q/ C
  2.   const promise = biometry.mount();
      Z- L( o+ Q  e) a( f6 p
  3.   biometry.isMounting(); // true% l2 n7 E2 j4 \" s0 @6 ~7 r5 M
  4.   await promise;* e6 X3 X4 G( f5 Y- r5 l
  5.   biometry.isMounting(); // false
    ' U( f( D' |: o$ j% p" {3 @, u
  6.   biometry.isMounted(); // true
    ( J' h1 s' r2 l. V! j+ Y. V7 R) _/ R
  7. } catch (err) {
    $ F# C/ U' J! H" o' z9 H6 D; U
  8.   biometry.mountError(); // equals "err"
    6 c5 L; q0 t+ v( `% ~
  9.   biometry.isMounting(); // false2 P* c" X5 X- b
  10.   biometry.isMounted(); // false+ u$ R% o' M' G& X! v
  11. }
复制代码

Functions :

  1. import {
    ( Z9 a7 s; Y* M) K- m, i' O
  2.   mountBiometry,* g, L+ H, S5 f1 f+ V7 d0 j
  3.   isBiometryMounting,7 E4 d, Q4 V2 ~; q6 k: B8 V' a) V
  4.   isBiometryMounted,
    1 N& g8 _* @, s& n: E
  5.   biometryMountError,# O" `0 u" L' J; \
  6. } from '@telegram-apps/sdk';
    ! m. t, p) D; g9 n- C3 i' A

  7. 0 @- P) T% ^; [6 l- [' w' Y
  8. try {
    7 o: H& U0 r( a9 M* {
  9.   const promise = mountBiometry();( @2 N6 W) Q% y+ m$ @5 |
  10.   isBiometryMounting(); // true& J7 K, S% Z, l
  11.   await promise;% B! E4 c' i- C& t, d4 K9 z1 N
  12.   isBiometryMounting(); // false
    3 ]) e, ]3 U! N$ E, j, K( ^
  13.   isBiometryMounted(); // true
    ! O4 `0 }& I0 {5 c; _8 Q! {. p6 |
  14. } catch (err) {
    ; a7 z. H' Z. k+ H
  15.   biometryMountError(); // equals "err"
    - H! i7 F$ d. J0 m
  16.   isBiometryMounting(); // false
    9 D' C% h* v; J
  17.   isBiometryMounted(); // false
    5 H# g% P- d* _, G. ]" c7 g& S
  18. }
复制代码
- x# f) l/ d0 x- A& A2 m% u

要卸载,请使用 unmount 方法:

Variable :

  1. biometry.unmount();  j' c% J( ]7 w
  2. biometry.isMounted(); // false
复制代码

Functions :

  1. import { unmountBiometry, isBiometryMounted } from '@telegram-apps/sdk';
    ) [0 i. O; I) l8 x% e
  2. 4 s5 U0 \" h6 _8 `: n* Q4 ^, v, G
  3. unmountBiometry();
    ; y- u: Y2 `/ l* E
  4. isBiometryMounted(); // false
复制代码
申请生物测量访问

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

Variable :

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

Functions :

  1. import { requestBiometryAccess } from '@telegram-apps/sdk';
    2 r/ \# e- ?' z: e& c

  2. 9 ]3 G: u& v' ^2 U* l5 ^/ g
  3. const granted = await requestBiometryAccess(); // boolean
复制代码
认证

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

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

  • reason?: string: 要向用户显示的身份验证原因。
    * V, h/ u, V0 [7 l; {

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

Variable :

  1. const { status, token } = await biometry.authenticate({3 K2 c5 A+ q3 z( A0 O
  2.   reason: 'Please!',5 R- m# A# _0 a% _/ W+ Z7 n6 Q7 r6 k
  3. });- r' W1 {% U) j4 J- ^

  4. ; A, o- i* [# W6 ]; k/ M" {" b- z
  5. if (status === 'authorized') {
    : |" d' ~7 C4 d
  6.   console.log(`Authorized. Token: ${token}`);
    ( t! M# U' P- m8 R8 p5 q  l/ w* N! C( u: E" b
  7. } else {
    5 o$ q) s6 ~: P1 Q% w$ M
  8.   console.log('Not authorized');9 b7 }4 g& d& z
  9. }
复制代码

Functions :

  1. import { authenticateBiometry } from '@telegram-apps/sdk';
    ; ~% Z6 ~. j. q2 b, ?6 k9 w" {, o# \
  2. * Y5 b' ^: P& z! \* u
  3. const { status, token } = await authenticateBiometry({
    ( ?+ Y4 ?, @8 I
  4.   reason: 'Please!',! I5 m7 t0 s/ j" M$ e5 T# F: ^
  5. });5 R3 L. ^5 w) E

  6. 1 V" g( j' @. K- K" |" T. k) r
  7. if (status === 'authorized') {  D3 Y; p; t. s! d$ Z  b9 [
  8.   console.log(`Authorized. Token: ${token}`);
    & N- }3 _. B* ^* g- S1 i
  9. } else {
    ' _7 q7 ]9 ?$ B. @3 B
  10.   console.log('Not authorized');* u' i& I: m5 H
  11. }
复制代码
更新令牌

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

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

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

Variable :

  1. const updated = await biometry.updateToken({1 }$ U& y4 C; ]
  2.   reason: 'Want to delete',
    - i3 I  s% N- }) ?4 ~7 Y
  3. });
    3 X  Q* o- x2 C2 w

  4. 3 |6 \+ O6 e0 |1 {
  5. await biometry.updateToken({
    2 I& f/ V# t1 S( G2 s
  6.   reason: 'Will set a new one',5 Y- L  Y* m" s% T6 O
  7.   token: 'new token',1 K# R: Q" n, a+ v3 r
  8. });
复制代码

Functions :

  1. import { updateBiometryToken } from '@telegram-apps/sdk';0 i. W" I: c$ c+ J5 y) `

  2. 1 ^% L% `) Z5 ?) z4 z
  3. const updated = await updateBiometryToken({
    9 m( U. Z/ I/ @! W1 x2 V8 i
  4.   reason: 'Want to delete',
    2 m$ D; m* \" i3 a4 o% {
  5. });
    , m/ K+ C( {5 a$ ?. e

  6. + S, i2 ~9 {) r3 P, |+ Y8 N3 y0 h
  7. await updateBiometryToken({
    ( S1 w1 F/ A" @/ I" G3 e- x
  8.   reason: 'Will set a new one',: ?, ~% o+ e+ Y2 m- z
  9.   token: 'new token',( [5 _, u) `$ g) P3 s, N/ C
  10. });
复制代码
打开设置

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

Variable :

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

Functions :

  1. import { openBiometrySettings } from '@telegram-apps/sdk';
    , X* V; X7 t+ ~9 j( V0 ~

  2. $ j' m  r, w1 p& R
  3. openBiometrySettings();
复制代码
5 |) A! h4 f' y8 u6 ]2 B
% a3 @5 }2 o  j% \7 Y
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则