QR 扫描仪 提供 QR 扫描仪功能的💠组件。 打开和关闭要打开 QR 扫描仪,开发人员应使用 open 方法。 它接受可选的 text 属性,负责显示扫描仪标题属性,具体取决于打开的样式。 反过来,调用 open 方法会更新 isOpened 信号属性值。 要关闭扫描仪,请使用 close 方法。 回调样式接受 onCaptured 选项,这是一个接收扫描的 QR 内容的函数。 该方法 返回一个承诺,该承诺将在扫描仪关闭后解析。 Variable : - import { qrScanner } from '@telegram-apps/sdk';% ^' o5 O! i" j
- ' i1 P% X* P* n4 ?3 q
- if (qrScanner.open.isSupported()) {; b9 \2 N( }! U9 N4 u6 i/ D! S$ L
- qrScanner.isOpened(); // false
6 x4 b4 W8 g0 }% ~9 W6 m - const promise = qrScanner.open({) r# U+ {8 [- e* F2 ~$ y
- text: 'Scan the QR',
9 X# S' d1 V! w7 a! B& V2 k0 v - onCaptured(qr) {% u' ]" K: |# l5 i( J) T" N
- if (qr === 'qr-content-we-expect') {
% ~2 } Z) c7 g: j( ]+ a4 Z, @ - qrScanner.close();
& | u" E- b1 I3 H% ?2 e - }+ p, C5 F5 B _1 i( O: g3 R
- },
+ z9 X# O9 j y$ l3 d - });8 {0 e% G) M& p; A
- qrScanner.isOpened(); // true5 J( M% Y' @# D6 [! Z0 Z6 N
- await promise;& B& l6 P/ D" f. p: S: v
- qrScanner.isOpened(); // false; t4 |( K5 R' V. U/ g
- }
复制代码Functions : - import {9 W2 ^& H K. a. J0 l! X
- openQrScanner,( e I- T1 z, C
- closeQrScanner,# _% h& P' R7 U; q1 V
- isQrScannerOpened,) W& \( c. F, c7 u4 a
- } from '@telegram-apps/sdk';
. ?6 A Q' ]' `5 }3 g
. M5 v5 f$ H9 y, l1 H4 [- if (openQrScanner.isSupported()) {- X2 c, Y. J5 `) D t$ x
- isQrScannerOpened(); // false/ C$ r. W6 q* u a8 z
- const promise = openQrScanner({
% k6 @3 _' _: _6 w - text: 'Scan the QR',* R% {7 ^; H- B# a4 l
- onCaptured(qr) {
0 f/ z7 x7 H, Q$ x: q9 h - if (qr === 'qr-content-we-expect') {: l; l$ G0 G4 d5 p/ ^
- closeQrScanner();
R# b" \: R' D# X! [, L - }
' C) Y' t+ t# b+ o6 y - },
* N, Y4 u$ X$ G2 r5 l! d A- | - });
$ k( J- X: n0 k+ r T' o2 Q. x - isQrScannerOpened(); // true
) |/ Y5 S" G, q2 I5 M# S) i+ o; L - await promise;( @" A Z% r; Z
- isQrScannerOpened(); // true- L- w5 e" j& I7 Q. z# ^0 \4 N& P! M) R
- }
复制代码 异步风格接受可选的 capture 选项,接收扫描的 QR 内容,如果应该捕获并承诺解决,则返回 true。 如果省略,将解析第一个捕获的 QR 内容。 如果由于某种原因扫描仪被关闭,则承诺可能被解析为 undefined。 Variable : - import { qrScanner } from '@telegram-apps/sdk';
+ D' I( Z H$ U4 b- Y7 `
1 K% D9 x/ A2 J' E) W- if (qrScanner.open.isSupported()) {1 |! w+ t9 u9 A
- // Getting the first captured QR.6 i; w/ e4 o ]
- qrScanner.isOpened(); // false7 O' U, o7 e0 n5 Z# ^! g' w1 G% w
- let promise = qrScanner.open({ text: 'Scan any QR' });" d- n" V2 j: J0 N9 s, D
- qrScanner.isOpened(); // true
4 A" x. N9 s2 Y8 ` - await promise;9 R7 [6 A9 z- M0 R7 o( O5 R2 C
- qrScanner.isOpened(); // false& d* b X; u# B* e/ u
2 V) ^. @+ H6 s0 D! K7 |( I( d: c" s- // Getting some specific QR. b5 b( W! P* J$ P- {! u0 d" o9 F* B
- qrScanner.isOpened(); // false) d9 @- B9 t: |. e+ d( C9 _
- promise = qrScanner.open({0 u$ ]5 E }6 Z( S
- text: 'Scan some specific QR',
. H/ M* t) Y4 b5 _/ q: k - capture(qr) {$ ~ }5 w' X6 F; s: ?
- return qr === 'some-specific-qr';
5 [ S! G: c, }1 ~0 R' J. {. L/ `( g - },. v2 `9 S. F- b8 _8 x
- });
/ @4 o# h# m$ a! t- t" v6 Y - qrScanner.isOpened(); // true/ W0 v0 T, T& C( ]& ~# K" x# l6 S
- await promise;9 N) I& b# A! l/ P4 G; y4 H
- qrScanner.isOpened(); // false0 k1 Q$ U8 \" ]( c$ }: C
- }
复制代码Functions : - import {
' i1 r z- a. H \5 p! z) O - openQrScanner,
8 l9 {3 y4 @4 L - closeQrScanner, }9 E& {0 H r# L" s. N. Z( P
- isQrScannerOpened,1 s6 ]7 Q B N, s' y' ~
- } from '@telegram-apps/sdk';
5 f( _$ |; q5 o+ I
/ b3 z! R3 [9 Z5 H- if (openQrScanner.isSupported()) {7 C" y% ^: S0 ~
- // Getting the first captured QR.
* u3 s! O9 [& I- E0 B7 c* V - // isQrScannerOpened() -> false: d5 m0 g/ R: K" Z) Q' I5 ]
- let promise = openQrScanner({ text: 'Scan any QR' });
: H( j* J/ E) O% W, y$ l* p: X - // isQrScannerOpened() -> true
1 A+ U' ~' W' O) X- H1 ~ - await promise;% @8 \' I+ [ a% k: j. M
- // isQrScannerOpened() -> false
1 x6 N- L' T6 v5 ^* h
* M. r! y1 q$ A9 R U- // Getting some specific QR.
- j* n; g" \% h! p - // isQrScannerOpened() -> false. N5 ~* y8 Z$ Z* y2 D, } O% j
- promise = openQrScanner({4 E; p& \0 v/ @8 M1 T
- text: 'Scan some specific QR',' h9 F: k& C1 D' f
- capture(qr) {$ W: L: z# f7 `& s& C
- return qr === 'some-specific-qr';7 D- |+ A1 a6 q$ T8 ]' Y7 T8 d
- },
& ?& T% u% V, e2 G3 O* j2 e - });- z$ Y5 s8 W j
- // isQrScannerOpened() -> true
- ]2 b( w0 k4 I! l - await promise;
( b' x8 v {/ l; G% {" w - // isQrScannerOpened() -> false" a$ g' R* ?* @
- }
复制代码 - H" k# ^( N" M. r5 j% g
5 H" F2 ?5 }0 }+ A3 R( n$ U B" |' C
|