QRScanner 提供 QR 扫描仪功能的组件。 初始化要初始化组件,请使用 initQRScanner 函数: - import { initQRScanner } from '@telegram-apps/sdk';
8 [! J/ }4 l$ q - 5 T5 @$ v9 _1 ]; d4 ~1 l- T6 W1 x
- const qrScanner = initQRScanner();
复制代码 打开和关闭要打开 QR 扫描仪,开发人员应使用 open 方法: - qrScanner.open('Scan QR code').then((content) => {. d L+ V$ L' p' \7 _) _8 y
- console.log(content);
' p, }; L$ m& i( X. {1 V0 b+ J* L - // Output: 'some-data=22l&app=93...'
( v- v4 J0 G0 K+ Z( Q" p1 G; B - });& g0 R. H4 n4 E& Y$ w' S* _
- console.log(qrScanner.isOpened); // true
复制代码因此,该方法会返回一个承诺,一旦扫描到某个 QR ,该承诺就会被解析。 如果扫描仪已关闭,也可能解析为null。 允许传递一个带有可选属性 text 和 capture 的对象,该对象负责 ,以便在 QR 扫描仪中显示文本,并确定是否应捕获扫描的 QR 以及是否应履行承诺 。 - qrScanner.open({ % Q6 Q9 P% \$ {$ N$ y, f" e* _
- text: 'Scan QR code',, i% c4 ] Y0 Z d: \( O; r' u
- capture({ data }) {
& z* g7 ]9 {& y - // Capture QRs contanining Telegram user link.
$ L% C, i# Z3 @1 K6 Q+ X4 l - return data.startsWith('https://t.me');
3 @4 x* H5 ~# U2 D5 a- M4 i& ?" Y" Y - }
, H3 a* m5 H/ c; m; N) f - }).then((qr) => {+ F- c: E; b. Z& t I- B: }
- // May be something like 'https://t.me/heyqbnk' or null.
6 T3 I& P3 U$ l! s - console.log(qr);
! n: E5 @5 w9 H9 D - });
复制代码要关闭扫描仪,请使用 close 方法: 0 \$ R2 e& D$ y0 `( I& l! x# t
- qrScanner.close();5 |+ _$ w+ B: H& y# @8 O
- console.log(qrScanner.isOpened); // false
复制代码 3 r. z8 i. S% g
& K! H+ V- }) P4 ]! K
事件可被 跟踪 的事件列表: 事件 | 监听器 | 触发条件 | change | () => void | 组件中的某些部分发生了变化 | change:isOpened | (value: boolean) => void | 更改了 isOpened 属性 | / I' ]: A4 O5 d l/ j' F
方法支持方法列表,可用于 支持检查:open 和 close
4 i6 r; O4 x0 s& l- A+ m. h0 W
8 Q( ]3 {5 T( P/ V; D+ U6 d
( r3 X% T$ j4 ~6 m% J
; [3 q. i* R- i4 t$ H |