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

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

回答

收藏

Telegram 小程序 | TypeScript @telegram-apps/sdk @1.x | 组件 | 二维码扫码器

开源社区 开源社区 6793 人阅读 | 0 人回复 | 2025-02-23

QRScanner

提供 QR 扫描仪功能的组件。

初始化

要初始化组件,请使用 initQRScanner 函数:

  1. import { initQRScanner } from '@telegram-apps/sdk';8 Q- H  j. y* D
  2. 9 x/ J1 T, a4 i& g0 R% a
  3. const qrScanner = initQRScanner();
复制代码
打开和关闭

要打开 QR 扫描仪,开发人员应使用 open 方法:

  1. qrScanner.open('Scan QR code').then((content) => {
      W  s* V' ?& f, T
  2.   console.log(content);
    ! v* k. J& i' {4 v
  3.   // Output: 'some-data=22l&app=93...'
    7 g9 }* @* l$ Q  W
  4. });
    2 `: X" p; w/ w) [2 e) a
  5. console.log(qrScanner.isOpened); // true
复制代码

因此,该方法会返回一个承诺,一旦扫描到某个 QR ,该承诺就会被解析。 如果扫描仪已关闭,也可能解析为null。

允许传递一个带有可选属性 text 和 capture 的对象,该对象负责 ,以便在 QR 扫描仪中显示文本,并确定是否应捕获扫描的 QR 以及是否应履行承诺 。

  1. qrScanner.open({
    7 P3 y. v! i7 Y; F' S
  2.   text: 'Scan QR code',
    8 T8 q* o' \! {4 m
  3.   capture({ data }) {' I1 `! X+ A4 X; B9 z. n! e
  4.     // Capture QRs contanining Telegram user link.' r: V& C3 V) ?" w* q
  5.     return data.startsWith('https://t.me');  @, }) d6 B4 W1 r, _" Z
  6.   }
    , O7 k# H9 W$ P3 \3 y
  7. }).then((qr) => {5 ?2 i- a1 ?2 w4 _0 d
  8.   // May be something like 'https://t.me/heyqbnk' or null.
    1 n  ^7 Z& I" m4 V2 F
  9.   console.log(qr);; r5 M" n, J/ q
  10. });
复制代码

要关闭扫描仪,请使用 close 方法:


1 b6 F4 C1 o& \4 _% I# r
  1. qrScanner.close();
    . q+ Q) |  B9 `+ Z0 _
  2. console.log(qrScanner.isOpened); // false
复制代码

5 w0 X* M5 G( A8 a2 F* z" s2 |! W; _' w9 @' V) E' P
事件

可被 跟踪 的事件列表:

事件
监听器
触发条件
change() => void组件中的某些部分发生了变化
change:isOpened(value: boolean) => void更改了 isOpened 属性
" Y6 Y! ^, M! L8 X9 q+ R$ r* K
方法支持

方法列表,可用于 支持检查:open 和 close


0 e" B: y2 m% `7 p* b& h8 n, r2 H" _7 s" t) Y# }! E
% T3 J" z1 j' D

* C2 h7 f- w, M. }7 W; d
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则