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

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

回答

收藏

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

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

生物统计学

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

检查支持

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

Variable :

  1. import { biometry } from '@telegram-apps/sdk';
    & t) `+ O. I; R# x+ b% G
  2. 5 p2 C( `$ b6 a* J( G& B& q0 K
  3. biometry.isSupported(); // boolean
复制代码

Functions :

  1. import { isBiometrySupported } from '@telegram-apps/sdk';/ k2 T" F" P. W  m
  2.   n" Q7 Y, P1 \: m
  3. isBiometrySupported(); // boolean
复制代码
安装

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

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

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

Variable :

  1. try {2 J9 x( q) }) Q3 l# R
  2.   const promise = biometry.mount();8 y) {# C( t4 p4 Z: {$ }$ f
  3.   biometry.isMounting(); // true6 \: y$ a( l. c& b6 D8 o
  4.   await promise;/ E1 b% T& Y/ m4 ]
  5.   biometry.isMounting(); // false( X$ u  c4 v1 Q& V4 g
  6.   biometry.isMounted(); // true5 @8 `  j/ t8 x
  7. } catch (err) {# \/ A( ?& }5 z" K8 x6 B) i
  8.   biometry.mountError(); // equals "err"
    : a8 I" F4 z$ O) J- n: x* L! `5 Z
  9.   biometry.isMounting(); // false& I& i% N6 J& Q
  10.   biometry.isMounted(); // false4 h) p' j* |8 g8 }& v; b: v
  11. }
复制代码

Functions :

  1. import {4 U7 r2 n7 u2 u5 j1 w
  2.   mountBiometry,
    " p" m; J4 m# i  {
  3.   isBiometryMounting,; e9 X% n9 N  `* N0 `" w
  4.   isBiometryMounted,
    $ g; V% r+ s  I
  5.   biometryMountError,# B4 ^0 _1 U: k4 i3 ]: F
  6. } from '@telegram-apps/sdk';3 F( w; \3 ]" w2 \, t
  7. : c, m( _5 N9 [4 O/ M0 h6 U
  8. try {
    " Y) q0 A% q* o( M4 l) |
  9.   const promise = mountBiometry();
    ; Z1 E  X3 f  h
  10.   isBiometryMounting(); // true
    ; P! q& `% l, w
  11.   await promise;
    : T$ m3 Q* y4 M1 M: T
  12.   isBiometryMounting(); // false
    + U% V; m% D/ S' J; `
  13.   isBiometryMounted(); // true9 O# J- U8 @0 \, [$ R% F
  14. } catch (err) {  ~1 r/ P1 d5 ^
  15.   biometryMountError(); // equals "err". ^; Q7 n4 i: {. g2 n- u
  16.   isBiometryMounting(); // false$ p/ K0 m: @- K# F% `
  17.   isBiometryMounted(); // false  Y0 O; [" H; }. Y' q! m! _' F$ }/ x
  18. }
复制代码
4 q( j; _' K- T: |; e

要卸载,请使用 unmount 方法:

Variable :

  1. biometry.unmount();) a- a5 P5 I: m3 a
  2. biometry.isMounted(); // false
复制代码

Functions :

  1. import { unmountBiometry, isBiometryMounted } from '@telegram-apps/sdk';8 X- a* ^) K% o1 E" L' D% f

  2. 8 w# r& g0 N" M- a/ m* g+ o! }
  3. unmountBiometry();, E" b5 ?$ B  F
  4. isBiometryMounted(); // false
复制代码
申请生物测量访问

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

Variable :

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

Functions :

  1. import { requestBiometryAccess } from '@telegram-apps/sdk';; O& E4 a# \4 Y
  2. $ p: `/ z6 g' c! B
  3. const granted = await requestBiometryAccess(); // boolean
复制代码
认证

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

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

  • reason?: string: 要向用户显示的身份验证原因。$ Q  H8 G  z1 p! v

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

Variable :

  1. const { status, token } = await biometry.authenticate({' ]0 R  h* M+ Z+ ^! S+ W
  2.   reason: 'Please!',
    + `3 X! I3 W% e& e! G1 S$ f
  3. });( F6 |0 B# V( X8 v, s" m. O* t7 A
  4. ; q) U6 H! T6 {( l% I
  5. if (status === 'authorized') {* G, F. x* p/ m1 i$ k- r+ `  @$ d
  6.   console.log(`Authorized. Token: ${token}`);
      f, s' [2 A3 e: R8 [. A/ w. A
  7. } else {
    & \* c; T% d8 q0 P
  8.   console.log('Not authorized');
    2 T; s! S$ G( q0 g$ f+ q
  9. }
复制代码

Functions :

  1. import { authenticateBiometry } from '@telegram-apps/sdk';
    ) t7 I- ?4 M9 G/ r

  2. 1 B* M9 b0 T$ P( |+ {& l$ i$ Y
  3. const { status, token } = await authenticateBiometry({+ i6 \5 K1 W' }7 U/ a  E
  4.   reason: 'Please!',9 U, }: S8 z8 g5 K. `( }% V" }$ r
  5. });
    + O; E$ s4 _/ t' T3 T. [4 [/ q

  6. : s  Y. _6 `2 I7 k
  7. if (status === 'authorized') {
    7 ^8 m& q% M2 ~2 L
  8.   console.log(`Authorized. Token: ${token}`);/ T7 Q5 {. T; S* \- e4 {6 J
  9. } else {$ e0 m5 k+ j! L3 ]# O1 Z1 p
  10.   console.log('Not authorized');
    % X3 O$ H0 _, @, |3 G6 J* H# E
  11. }
复制代码
更新令牌

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

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

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

Variable :

  1. const updated = await biometry.updateToken({
    # @/ b& s; Z7 `8 h7 c# K" C
  2.   reason: 'Want to delete',5 |: }, o7 Q/ }' b7 e& ~, V
  3. });
    1 H0 e- E9 H' [; F7 c

  4. - H: ?$ N: \6 {* m  H2 F3 T# T  u
  5. await biometry.updateToken({
    ( r" s' o+ R" c5 g' a% Y+ p: D
  6.   reason: 'Will set a new one',% s/ h6 b0 ~' K3 c
  7.   token: 'new token',
    * ^8 ^+ F3 V8 `
  8. });
复制代码

Functions :

  1. import { updateBiometryToken } from '@telegram-apps/sdk';
    9 C5 P1 f$ G: z5 q: _

  2. - U# f  U4 j4 h% E* g3 o
  3. const updated = await updateBiometryToken({6 N' r) @& M# o, X; ^8 m
  4.   reason: 'Want to delete',/ ^; k2 o. x; k7 i+ _; L
  5. });
    & O( ~& [/ ^% k% j' I  o& |
  6.   j4 _3 ?/ _# X' b
  7. await updateBiometryToken({
    7 W) y1 l5 X9 h6 F% z% d# I8 `
  8.   reason: 'Will set a new one',+ ^; @9 z( l& r! O5 r9 A8 S9 u
  9.   token: 'new token',
    ! p+ l1 X& R$ j2 N
  10. });
复制代码
打开设置

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

Variable :

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

Functions :

  1. import { openBiometrySettings } from '@telegram-apps/sdk';" E& z; B' [0 v) A8 p+ t+ `

  2. 1 x5 S8 T# q0 C$ B# {
  3. openBiometrySettings();
复制代码

( }4 g* H6 l5 \, Z; p/ ^) n3 V. e2 c. Z8 M0 f
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则