QRScanner 提供 QR 扫描仪功能的组件。 初始化要初始化组件,请使用 initQRScanner 函数: - import { initQRScanner } from '@telegram-apps/sdk';
+ J, g# D {& f9 J1 S- L7 @# a/ ] - # o. _9 a7 M& f* P0 M, M% r7 K' i
- const qrScanner = initQRScanner();
复制代码 打开和关闭要打开 QR 扫描仪,开发人员应使用 open 方法: - qrScanner.open('Scan QR code').then((content) => {
' B$ A6 H4 I( K, ~* n1 c# w, Z - console.log(content);
, c4 N0 p. i- p6 \2 |2 f. S/ U - // Output: 'some-data=22l&app=93...'; |3 H5 [) |8 c5 F: {
- });0 e0 T% l0 `- g1 M/ _7 V7 ~: G9 i
- console.log(qrScanner.isOpened); // true
复制代码因此,该方法会返回一个承诺,一旦扫描到某个 QR ,该承诺就会被解析。 如果扫描仪已关闭,也可能解析为null。 允许传递一个带有可选属性 text 和 capture 的对象,该对象负责 ,以便在 QR 扫描仪中显示文本,并确定是否应捕获扫描的 QR 以及是否应履行承诺 。 - qrScanner.open({ . Z+ R3 r4 Y* N& ^5 t5 b" B' S( i( _
- text: 'Scan QR code',
d& E, ]& }7 |# ]# Y, S3 U( B - capture({ data }) {& k* c: J+ c8 J/ Y
- // Capture QRs contanining Telegram user link.9 M- w: b8 y$ w7 m$ z0 ]" Q
- return data.startsWith('https://t.me');) U, |1 A, y2 O( }! f% C
- }+ ~ I% u8 v; B3 N d9 Q
- }).then((qr) => {
" O8 W8 G7 e v' Y - // May be something like 'https://t.me/heyqbnk' or null.
: r& A5 O# K5 m; R - console.log(qr);
7 D5 D: R- M+ ^; c! U7 l - });
复制代码要关闭扫描仪,请使用 close 方法: ( C1 U4 } y$ f. s8 {2 l! E
- qrScanner.close();
4 o% H; @3 y t* U8 a& s9 }; O7 x% X8 U - console.log(qrScanner.isOpened); // false
复制代码 3 r+ x! H, ?0 B% V' r/ {' W
* ~+ d V D. Q. y1 V( Y事件可被 跟踪 的事件列表: 事件 | 监听器 | 触发条件 | change | () => void | 组件中的某些部分发生了变化 | change:isOpened | (value: boolean) => void | 更改了 isOpened 属性 | # ^8 w) p! n6 l8 U% [6 q
方法支持方法列表,可用于 支持检查:open 和 close / D+ y$ t/ `0 m4 _
( L5 ^; Q/ T, f" p
% j' H. s' E d
, M; R/ |% L6 F' A. G8 c# S |