QR 扫描仪 提供 QR 扫描仪功能的💠组件。 打开和关闭要打开 QR 扫描仪,开发人员应使用 open 方法。 它接受可选的 text 属性,负责显示扫描仪标题属性,具体取决于打开的样式。 反过来,调用 open 方法会更新 isOpened 信号属性值。 要关闭扫描仪,请使用 close 方法。 回调样式接受 onCaptured 选项,这是一个接收扫描的 QR 内容的函数。 该方法 返回一个承诺,该承诺将在扫描仪关闭后解析。 Variable : - import { qrScanner } from '@telegram-apps/sdk';. u. \4 ?6 i; t
- 0 s0 L* h* r+ \' w$ _: n
- if (qrScanner.open.isSupported()) {
& D* |# r/ | C+ ~1 | - qrScanner.isOpened(); // false
, O0 {' [* D) } - const promise = qrScanner.open({
1 M$ e: O" e- c: y9 ^7 [1 k2 \ - text: 'Scan the QR',. @8 r' ?4 g m8 U" v, |9 q
- onCaptured(qr) {
4 O: d- ]+ d: |0 A# [. _ W - if (qr === 'qr-content-we-expect') {# @2 P9 g2 H/ D8 G' x6 |9 o6 I
- qrScanner.close();
+ n. Q: p6 i; A$ d I2 P8 F - }
/ @( c( o! e9 q - },8 x# r6 Q1 d X5 U
- });
3 y* Z1 U& Y) K n- ]7 Y* c - qrScanner.isOpened(); // true
9 d; @6 {+ g: _4 G! x* J - await promise;
; `/ z5 f6 h7 S, Y3 g* Q) Y - qrScanner.isOpened(); // false' a, q, V% j+ M: M0 x8 e, U
- }
复制代码Functions : - import {$ Z; G( i# X* J
- openQrScanner,
5 E. o3 f6 Z$ X8 x2 _' P* r: A - closeQrScanner,; k% r" I9 l+ Y- j: t7 P
- isQrScannerOpened,
O: P5 H8 Z9 |0 s - } from '@telegram-apps/sdk';' U0 K5 W, j, S* m( L& g5 w' p
+ @) m1 I" W, k, e H- Z- if (openQrScanner.isSupported()) { U: M: X, `& P6 @3 ]0 O( ]! S9 A
- isQrScannerOpened(); // false
$ Z6 v$ i+ S! M$ c( }! q( @$ y. Y$ Y - const promise = openQrScanner({
6 x: c2 Y/ Q0 R; t% E - text: 'Scan the QR',
9 @) d. B$ D8 y8 K" e: p, y4 N - onCaptured(qr) {+ Z, @' R! o; l* |5 R
- if (qr === 'qr-content-we-expect') {( j5 p0 l6 `7 {8 e D6 r
- closeQrScanner();) v! Z* Y& f$ [* J7 C! u9 o0 U
- }
: d$ D7 L% u H - },
8 x1 L3 n' V6 R - });+ Z2 A6 N# \$ A* F4 w
- isQrScannerOpened(); // true. Y/ p& z: _& E7 Y6 V9 H
- await promise;7 S6 ~! P& D' |8 j
- isQrScannerOpened(); // true
1 [, j+ u, T1 V7 h. Y& L - }
复制代码 异步风格接受可选的 capture 选项,接收扫描的 QR 内容,如果应该捕获并承诺解决,则返回 true。 如果省略,将解析第一个捕获的 QR 内容。 如果由于某种原因扫描仪被关闭,则承诺可能被解析为 undefined。 Variable : - import { qrScanner } from '@telegram-apps/sdk';
' ?3 J. S. g% j! F8 h0 o" w" ]# f. r
7 @0 t8 P* O# o! o! B/ m- if (qrScanner.open.isSupported()) {. T# I. s' R2 T2 V, R7 K
- // Getting the first captured QR.
4 s8 d2 Y& i$ _/ A* H3 _- H - qrScanner.isOpened(); // false- n9 V8 j3 ] m$ C/ O8 [( B' j
- let promise = qrScanner.open({ text: 'Scan any QR' });
N: }& B2 e9 K' v! O - qrScanner.isOpened(); // true
# n- G* V! p$ k' a8 R H - await promise;
; M% ]4 e8 j& P( Y - qrScanner.isOpened(); // false* d4 X" k+ {% V( \) b# P: f6 J" H' S
- b- I" P& ~' H& L
- // Getting some specific QR.( u7 x, Z n$ e+ f; z
- qrScanner.isOpened(); // false2 d( W1 x& @' T, O* ?6 p. y/ M! P
- promise = qrScanner.open({
9 l/ G$ i! p, U# p3 J) g. w9 L - text: 'Scan some specific QR',* k. b- {$ Z8 K7 [* Z( t
- capture(qr) {* Y# b# k% i' [& J
- return qr === 'some-specific-qr';
- \0 w3 {$ F; [/ j' _! C - },
- i, W" f( X/ @ - });
9 t1 b0 F! p) E, ]& t; u9 c - qrScanner.isOpened(); // true
' G1 \! k' _/ Y- Z2 J7 j - await promise;/ y7 o+ x+ Y6 N' A! q
- qrScanner.isOpened(); // false
" s) O \! i5 ^" p! v - }
复制代码Functions : - import {+ L# l A) i+ X- n- D, y
- openQrScanner,4 `9 m9 V8 b/ E
- closeQrScanner,* B$ U% Q" p! D) E
- isQrScannerOpened,
: e" Z2 l& \. u1 X - } from '@telegram-apps/sdk';
) d* e {2 D# V. T! I
- _! f. F# P. w1 F7 q! Y F3 W- if (openQrScanner.isSupported()) {
" @6 l! |: M+ @) t' t( Z0 p - // Getting the first captured QR.
3 s/ w+ b: d7 |; P$ y; ]: ? - // isQrScannerOpened() -> false
+ }9 D# o$ X' x" w3 q4 G: q - let promise = openQrScanner({ text: 'Scan any QR' });# c2 M3 g9 d3 w
- // isQrScannerOpened() -> true
. O' w3 n- F* M4 e; J - await promise;) t# Y1 A2 o' H) T3 V# ]7 R
- // isQrScannerOpened() -> false3 r$ f3 ]- p% [! I! q
4 _7 }- E) m* t" Y( R, f% h* M- // Getting some specific QR.
+ I* Y1 }* D& d$ l' s0 d - // isQrScannerOpened() -> false ~- k" s' N! t& i- ~, W1 c7 S0 K
- promise = openQrScanner({1 y* m( G$ d6 _. R+ j: F
- text: 'Scan some specific QR',
6 j7 m2 ^4 X( n) x - capture(qr) {
B3 r' ? D* v3 U/ `3 \) G2 m - return qr === 'some-specific-qr';
v( s' c J7 w. c' _ - },# U5 i# s( K2 f" e
- });
: b$ e( m4 S- d( Y; X- R9 _ - // isQrScannerOpened() -> true( ], G3 C6 m R" c, J
- await promise;
- o6 z: o' g4 T; \5 W! W7 x! [& W3 y - // isQrScannerOpened() -> false/ y, R0 X( ]1 r# _
- }
复制代码
3 A9 w. E4 Y6 s0 g5 ?
9 V5 u6 K1 J& C3 ~# R5 Q |