启动参数 本节 SDK 涵盖与 launch parameters 相关的主题。 解析要解析作为启动参数的值,软件包提供了 parseLaunchParams 方法。 方法接受以字符串或 URLSearchParams 实例形式呈现的查询参数,并返回 LaunchParams 接口。 如果传递的数据无效,则会出错。 Usage Example : - import { parseLaunchParams, launchParamsParser } from '@telegram-apps/sdk';; g6 g1 {) H2 O: W7 r+ B
- % J, H) j6 s; Z7 E" G# V3 Z; k6 q
- parseLaunchParams() O5 d1 o6 Y3 D
- new URLSearchParams([2 L# M& | ^" T# I4 d
- ['tgWebAppVersion', '6.7'],
% Y: t7 a! Y8 b7 v - ['tgWebAppPlatform', 'tdekstop'],
$ i' ^8 G" E0 ^0 F0 g* e - ['tgWebAppBotInline', '1'],
' Y9 O1 v0 m) p# ~2 q% i. e - ['tgWebAppData', new URLSearchParams([
& I; C; S- K. e- _ - ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'], _* h$ Z; K9 R+ @4 \: F7 v
- ['user', JSON.stringify({9 n! i% g& l1 u$ F4 Q* r
- id: 279058397,0 r! g$ n. z6 t j
- first_name: 'Vladislav',
0 F0 Y+ G% ~6 ]8 |) D9 X. X - last_name: 'Kibenko',8 m. t( v G0 H' A6 X3 L
- username: 'vdkfrost',9 _: A0 p8 K4 ^% n2 i- d; p
- language_code: 'ru',
$ g5 ~6 e/ o) m$ @2 { - is_premium: true,
" V4 Y9 y+ v2 ]- m, r# L, h - allows_write_to_pm: true,
) e4 C$ N# O' m) ~ - })],
_! R% E3 S& j. E1 O* U - ['auth_date', '1691441944'],* T' z8 k @* j; ]7 C/ h( }
- ['hash', 'abc'],7 b( B+ t& \0 Q) B( o8 D
- ]).toString()],
* m1 l6 X: I: K$ u/ i8 p4 E - ['tgWebAppThemeParams', JSON.stringify({- N; o) m l7 \6 Q3 N
- bg_color: '#17212b',; a5 N' v; k; b" k4 O
- button_color: '#5288c1',
& a/ m5 `1 C* \! o% E2 M3 m - button_text_color: '#ffffff',
9 }* o& p ?' J0 |7 t: ]; ]2 e/ n - hint_color: '#708499',3 t" V3 b% ~- q4 @
- link_color: '#6ab3f3',
) H+ g7 S6 A% y' l* d" O - secondary_bg_color: '#232e3c',
( X5 N( B3 \* g( U9 T& u - text_color: '#f5f5f5',2 n; f8 U6 g( c6 H. g
- })],8 C) N6 W }$ n
- ]),
4 ]8 h* G c% G1 Y' o8 j - );
复制代码Expected Result : - const result = {9 M9 A4 @2 V/ F7 F
- botInline: true,
) v4 x7 a. q% w+ q9 g6 S: P5 B: R! i - version: '6.7',* b9 N% k8 p$ P1 @; g. g
- platform: 'tdesktop',0 ]; e u; ^+ V- z/ u
- themeParams: {0 N/ W+ [# X- i0 _" o
- bgColor: '#17212b',
, }! X, P+ w* M# A6 p - buttonColor: '#5288c1',* }3 W6 a9 Z! d4 ^) u; [4 V
- buttonTextColor: '#ffffff',4 i5 ^8 R8 d/ F) Z
- hintColor: '#708499',
) K4 k3 @, u0 A) F% ? - linkColor: '#6ab3f3',# p6 {8 m D$ }! ~: |
- secondaryBgColor: '#232e3c',6 M8 q s0 }# d! C! l0 u7 Q- g! n5 r+ t. `
- textColor: '#f5f5f5',& K7 \4 s' ]( \% K6 D9 D3 C
- },' I; q, S* E8 v7 ^& p4 P
- initDataRaw: 'query_id=AAHdF6IQAAAAAN0XohAOqR8k&user=%7B%22id%22%3A279058397%2C%22first_name%22%3A%22Vladislav%22%2C%22last_name%22%3A%22Kibenko%22%2C%22username%22%3A%22vdkfrost%22%2C%22language_code%22%3A%22ru%22%2C%22is_premium%22%3Atrue%2C%22allows_write_to_pm%22%3Atrue%7D&auth_date=1691441944&hash=abc',
# M3 o) I% j% ]$ } - initData: {
' R# Y7 ^: l8 Q- S% c - queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',
, w% ~- G9 \- s! ~3 { - authDate: new Date(1691441944000),
8 J8 ^: ~& |0 X1 w5 A - hash: 'abc',# E H; x1 t8 \& J; S' J
- user: {2 U" h2 @- M0 N" m1 q. [" ?
- id: 279058397,
0 X5 h {0 M2 }4 W- x z - firstName: 'Vladislav',
! O* J6 U: L7 t! Y2 _ X; U- ^ - lastName: 'Kibenko',. k# }0 P/ g/ C5 r# F3 v+ s' X4 W5 c& u" O
- username: 'vdkfrost',
( ]$ j* X' j3 E( T3 ~ - languageCode: 'ru',% ?9 J. _9 `9 C/ a
- isPremium: true,# R5 z. L( ?% ^% D+ {- v; e
- allowsWriteToPm: true,8 A& Z6 [9 \8 H0 A
- },
9 B; P& q& D# X [2 H1 }! r - },
7 a+ Y# i) @2 s3 C8 } - };
复制代码 序列化要将启动参数对象表示转换为字符串,开发人员应使用 的 serializeLaunchParams 函数: - import { serializeLaunchParams } from '@telegram-apps/sdk';
: e3 E9 m$ `7 f& c
! ~1 k/ ^ u! ?1 k8 V- serializeLaunchParams({
# c+ P( ], n3 L0 H - version: '6.7',% i- K: _+ J+ _
- platform: 'tdesktop',
! E5 b. ~7 v* A' U: U+ G. j% g - themeParams: {
8 @7 i0 f& N& ~0 [$ L: s' `/ G - bgColor: '#17212b',. t0 v) y- P. ~* B3 f& Q
- buttonColor: '#5288c1',9 r- \, e! l# }1 R
- buttonTextColor: '#ffffff',
; W" j% l- K' g3 B% g - hintColor: '#708499',4 D! {3 S& w! F9 b7 X7 f8 j
- linkColor: '#6ab3f3',- G& A. J" E/ j
- secondaryBgColor: '#232e3c',
; Q" b1 P& |/ z% M0 `3 t - textColor: '#f5f5f5',4 g T0 L( I! J8 W
- },2 t. a4 y$ x0 K; p, u( M
- });& R3 m. X& k! Z5 _
8 K1 H# ?+ ?, X$ L0 A- // Result:% g7 o h) `+ H" S! G# _
- // tgWebAppVersion=6.7
- a! B2 q* ^2 ^: p( z" V - // &tgWebAppPlatform=tdesktop6 b- r- s" q. r+ o' L' ]8 X' {* H# a+ n+ ]
- // &tgWebAppThemeParams=%7B%22bg_color%22%3A%22%2317212b%22%2C%22button_color%22%3A%22%235288c1%22%2C%22button_text_color%22%3A%22%23ffffff%22%2C%22hint_color%22%3A%22%23708499%22%2C%22link_color%22%3A%22%236ab3f3%22%2C%22secondary_bg_color%22%3A%22%23232e3c%22%2C%22text_color%22%3A%22%23f5f5f5%22%7D
复制代码 检索该软件包可使用 的 retrieveLaunchParams 函数从当前环境中提取启动参数。 如果所有已知数据源都包含无效数据,则 会抛出错误。 - import { retrieveLaunchParams } from '@telegram-apps/sdk';0 m; A* l% N o: a# l
- 3 W. v4 k$ j3 [8 z. I
- const launchParams = retrieveLaunchParams();
复制代码 6 n$ g* \% Q. p! a; C, s
3 m8 s q' L" b; x; D* D
|