QR 扫描仪 提供 QR 扫描仪功能的💠组件。 打开和关闭要打开 QR 扫描仪,开发人员应使用 open 方法。 它接受可选的 text 属性,负责显示扫描仪标题属性,具体取决于打开的样式。 反过来,调用 open 方法会更新 isOpened 信号属性值。 要关闭扫描仪,请使用 close 方法。 回调样式接受 onCaptured 选项,这是一个接收扫描的 QR 内容的函数。 该方法 返回一个承诺,该承诺将在扫描仪关闭后解析。 Variable : - import { qrScanner } from '@telegram-apps/sdk';
3 E; M( K8 I+ |0 M0 y5 J - ( T# b' ^2 d- s3 G$ }1 o
- if (qrScanner.open.isSupported()) {
, i0 r6 [5 j4 k1 Z* Y2 L; e3 `2 @ - qrScanner.isOpened(); // false" g3 X) p! J1 S9 _- V
- const promise = qrScanner.open({- z+ Z8 p" C8 K) V: ` i
- text: 'Scan the QR',
: Y/ b3 M) n) K$ h+ G+ N/ [" t - onCaptured(qr) {
: }$ u2 I7 N: r+ n a - if (qr === 'qr-content-we-expect') {8 x6 T9 a& j$ ?: H0 N; ^2 z- Z
- qrScanner.close();% t- v* t8 b+ _: ?
- } R6 l4 K8 e) d& c* G- n
- },
9 ?! ~/ t: W. T. @' @5 H' E: ?! Z - });- s4 ?! A" F+ o# Z
- qrScanner.isOpened(); // true
; V0 `8 }" @% s f: E! M% i - await promise;
8 u5 d7 ~6 [5 d - qrScanner.isOpened(); // false# ]* R0 }1 P5 v$ ~- b" v
- }
复制代码Functions : - import {
1 [8 y6 G" C( }$ G; _3 N6 _& |0 B - openQrScanner,3 `; x# e W+ U8 ?
- closeQrScanner,- m- }1 O' X! a/ y5 N. B4 E5 a
- isQrScannerOpened,
3 ]# n7 p$ V( I/ B. f2 T - } from '@telegram-apps/sdk';% _2 E+ [7 a1 r Z9 A% K
: o( }: j0 @" S+ a4 K# i7 f8 v- if (openQrScanner.isSupported()) {
! S$ o. p, J3 D6 ]; I! v) Y( T. C1 ` - isQrScannerOpened(); // false
+ J; r5 w+ N" A( S - const promise = openQrScanner({' g. A: Y) ~! B- ?0 G
- text: 'Scan the QR',
# U7 w7 m2 W# k# P* L: d% u - onCaptured(qr) {
7 v: y3 i- n; x4 y6 d* _ - if (qr === 'qr-content-we-expect') {
" g X' w2 b: j5 \ - closeQrScanner();6 J. g7 |7 l, L
- }: F4 h: a2 Z) p. {7 X V
- },
% r7 K. M! g0 L - });
" G G7 q- y M- y2 l& Y - isQrScannerOpened(); // true6 t4 V, {( i$ u3 a G3 r* \
- await promise;' n- z) w2 J: f: {+ E+ g9 J2 t
- isQrScannerOpened(); // true
) A% `; t" Z2 Y - }
复制代码 异步风格接受可选的 capture 选项,接收扫描的 QR 内容,如果应该捕获并承诺解决,则返回 true。 如果省略,将解析第一个捕获的 QR 内容。 如果由于某种原因扫描仪被关闭,则承诺可能被解析为 undefined。 Variable : - import { qrScanner } from '@telegram-apps/sdk';8 l9 K: ~# a$ I' S2 n
. _9 q1 A) F" o; O2 F6 ]- if (qrScanner.open.isSupported()) {
. Q8 j# r' T# G! L3 f' [0 V# i. Z - // Getting the first captured QR.
4 r* |/ |& Q" |& w% t: D% f - qrScanner.isOpened(); // false
5 V6 z- k1 M$ w2 d - let promise = qrScanner.open({ text: 'Scan any QR' });
9 x8 a. Q1 c+ V1 o" c+ z - qrScanner.isOpened(); // true- T4 h1 v/ G! c. r) }( f: i
- await promise;
1 U! p% g. @: w - qrScanner.isOpened(); // false! w8 [ A' V G9 Y5 q8 s; j
1 O" I1 `8 V7 |" M( V/ `$ G2 h+ v- // Getting some specific QR.
5 e' W1 h9 U' Q5 i* [1 y* Y - qrScanner.isOpened(); // false8 u) q! t- Q! O/ r6 d6 J
- promise = qrScanner.open({
% P+ P/ _' T* X6 ~& l! V1 d. H7 x4 U# S - text: 'Scan some specific QR',: C7 D" I5 v% T; K3 S$ O8 {0 F& t. b% c
- capture(qr) {+ c9 A, w, ?) M3 x
- return qr === 'some-specific-qr';
! y9 o3 o0 ?/ G% g1 ^: G$ W3 x) w( n - },! X; w: m2 U) o% F% O& M+ C
- });- [' ~2 M! G/ M R" x
- qrScanner.isOpened(); // true
& H, u: k9 V: f t, v - await promise;' d0 N% {2 K1 j; d5 K% c4 @) e- n
- qrScanner.isOpened(); // false
8 \& X7 m1 y( D4 t# f. C - }
复制代码Functions : - import {
/ ~0 k& t6 B8 \, W. W - openQrScanner,7 B# a z3 v& d' Q4 O
- closeQrScanner,7 O# S+ S% G2 g* i+ y8 t
- isQrScannerOpened,' O6 B4 M; }3 R9 l7 ~
- } from '@telegram-apps/sdk';
* o B$ T% H. w; Z- q - + O$ a7 t+ Y; a! R5 |5 {+ A
- if (openQrScanner.isSupported()) {
5 m9 D _8 Z5 r2 C; a; O+ } - // Getting the first captured QR.
1 z7 U" @& L3 U - // isQrScannerOpened() -> false
$ r" _' b/ v9 L4 U: ?0 Q: G - let promise = openQrScanner({ text: 'Scan any QR' });
. ?) l: l2 R* ` - // isQrScannerOpened() -> true$ h4 I! [- J5 E u4 T/ J
- await promise;
% i$ ]( z3 j: U - // isQrScannerOpened() -> false# m2 x \5 Q" ^4 j5 g2 h2 |+ {% a
- + q' U$ Y1 E) F" y: s7 m. Y
- // Getting some specific QR.9 Y: w% S. E( M- W4 d3 Z% s
- // isQrScannerOpened() -> false7 K& V# M# Y* E! ~% t6 ~
- promise = openQrScanner({$ Q |, R, l8 w& \$ n: H
- text: 'Scan some specific QR',
6 l) O0 u( j- }2 X$ d - capture(qr) {
3 M% z3 ^% w1 `) ]5 j! l% | - return qr === 'some-specific-qr';8 S, k a9 `2 b$ z. B
- },/ j- C1 H6 p6 a3 v1 _- H
- });: a) n0 `/ U: \/ y$ B5 J( F/ a
- // isQrScannerOpened() -> true
- f6 @+ d( V$ A' N1 l' q, K3 g } - await promise;
( |2 L/ O5 ^0 c; s& O8 Q3 A' Q+ Y6 l2 H5 F - // isQrScannerOpened() -> false
) I6 @7 a5 T2 S: X+ M; U/ \ - }
复制代码
7 z9 T5 n" d* s3 {% m" @ {7 X9 [. a2 K+ C
|