QRScanner 提供 QR 扫描仪功能的组件。 初始化要初始化组件,请使用 initQRScanner 函数: - import { initQRScanner } from '@telegram-apps/sdk';8 Q- H j. y* D
- 9 x/ J1 T, a4 i& g0 R% a
- const qrScanner = initQRScanner();
复制代码 打开和关闭要打开 QR 扫描仪,开发人员应使用 open 方法: - qrScanner.open('Scan QR code').then((content) => {
W s* V' ?& f, T - console.log(content);
! v* k. J& i' {4 v - // Output: 'some-data=22l&app=93...'
7 g9 }* @* l$ Q W - });
2 `: X" p; w/ w) [2 e) a - console.log(qrScanner.isOpened); // true
复制代码因此,该方法会返回一个承诺,一旦扫描到某个 QR ,该承诺就会被解析。 如果扫描仪已关闭,也可能解析为null。 允许传递一个带有可选属性 text 和 capture 的对象,该对象负责 ,以便在 QR 扫描仪中显示文本,并确定是否应捕获扫描的 QR 以及是否应履行承诺 。 - qrScanner.open({
7 P3 y. v! i7 Y; F' S - text: 'Scan QR code',
8 T8 q* o' \! {4 m - capture({ data }) {' I1 `! X+ A4 X; B9 z. n! e
- // Capture QRs contanining Telegram user link.' r: V& C3 V) ?" w* q
- return data.startsWith('https://t.me'); @, }) d6 B4 W1 r, _" Z
- }
, O7 k# H9 W$ P3 \3 y - }).then((qr) => {5 ?2 i- a1 ?2 w4 _0 d
- // May be something like 'https://t.me/heyqbnk' or null.
1 n ^7 Z& I" m4 V2 F - console.log(qr);; r5 M" n, J/ q
- });
复制代码要关闭扫描仪,请使用 close 方法:
1 b6 F4 C1 o& \4 _% I# r- qrScanner.close();
. q+ Q) | B9 `+ Z0 _ - 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 |