启动参数 本节 SDK 涵盖与 launch parameters 相关的主题。 解析要解析作为启动参数的值,软件包提供了 parseLaunchParams 方法。 方法接受以字符串或 URLSearchParams 实例形式呈现的查询参数,并返回 LaunchParams 接口。 如果传递的数据无效,则会出错。 Usage Example : - import { parseLaunchParams, launchParamsParser } from '@telegram-apps/sdk';! V' o; ?$ h7 ?% h! }/ ]6 | \
- " i/ L; w; }3 v2 w6 U
- parseLaunchParams(( ?+ a2 B4 O4 _9 v6 F0 a( @& i1 x0 v2 c
- new URLSearchParams([
, D# h: x' Z% ?$ Q1 z - ['tgWebAppVersion', '6.7'],% L' Z4 U* ^6 r- }
- ['tgWebAppPlatform', 'tdekstop'],
& u$ H$ e, Q, f" I- J - ['tgWebAppBotInline', '1'],2 r; G7 k! ]$ l$ e) q9 k4 G1 h
- ['tgWebAppData', new URLSearchParams([8 a6 W: p0 s/ p5 O0 i& b
- ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'],4 ?3 b$ \" z3 G) U' l. y' R8 T
- ['user', JSON.stringify({
1 h. {5 |4 ]9 Q6 n8 G9 j - id: 279058397,) Z1 K* D: @) S5 s' l3 t4 A
- first_name: 'Vladislav',
, E* y0 r: g( v" l5 q/ e+ e - last_name: 'Kibenko',! W) x0 d; |) r6 u
- username: 'vdkfrost',! t) g8 J, s/ U, Z
- language_code: 'ru',+ @' I2 d% H4 ?2 Y# B: n; Y$ ^
- is_premium: true,2 n1 n) \) E+ I& E6 b3 F
- allows_write_to_pm: true,
$ `. w0 r" Q+ a - })],
; J" r0 w( D% |& y' ^ - ['auth_date', '1691441944'],5 {5 t* J. S! u9 j [% _
- ['hash', 'abc'],
+ S. F8 ~2 \, T3 l; V4 t - ]).toString()],
0 F8 W+ A; I" N1 H( [ - ['tgWebAppThemeParams', JSON.stringify({
8 E1 ]* w/ R5 B; C5 F! P: D - bg_color: '#17212b',3 h0 z# g* x% S, e/ G
- button_color: '#5288c1',8 x/ @$ k+ j* M. `; w" G. C# j
- button_text_color: '#ffffff',
, O6 T8 r& z+ v% F- P - hint_color: '#708499',
4 Z, U1 ^, q9 }; C1 @, D# f - link_color: '#6ab3f3',4 @9 f+ |4 W; ?2 S
- secondary_bg_color: '#232e3c',
% J1 e( r) c) ~- _% h6 e - text_color: '#f5f5f5',! I$ K J. @6 n! x6 F/ m8 P Q
- })],7 |$ i8 A( ^7 k$ k3 i$ A. e7 v7 G
- ]),
2 n4 i# Z. T _: j& F4 ]9 `% ^ - );
复制代码Expected Result : - const result = {
0 a& l/ H0 M& e' c: M" ]5 i - botInline: true,0 r4 `' ^! z/ a9 `+ l6 W7 k4 L
- version: '6.7',
& h! U8 C7 U' F - platform: 'tdesktop',
' i1 ]9 g, L3 T" B" C, j - themeParams: {8 X- h) E: b2 b# r
- bgColor: '#17212b',
6 \! [% G8 D, X, v- p - buttonColor: '#5288c1',' z( Y! j9 e. q: i$ f8 O- u
- buttonTextColor: '#ffffff',. L3 G; p# E8 t: C9 c
- hintColor: '#708499',5 R+ P( V6 G( X* }' D' g, `7 K
- linkColor: '#6ab3f3',1 j" [1 }6 E+ R8 X* ^7 Q! B
- secondaryBgColor: '#232e3c',+ E- S6 `( e+ M1 T' j: Y$ R% T
- textColor: '#f5f5f5',
: {1 j0 g+ e8 A) Q9 f0 G7 | - },/ I& \* H( }) i
- 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',
; v2 `- M/ f8 W# Z - initData: {( v% o/ R- ~1 `
- queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',5 Y+ B( `0 D; l. n) O* A3 `4 z
- authDate: new Date(1691441944000),
9 Q# t3 e0 W0 @8 }+ a& ^ - hash: 'abc'," a! z+ B3 p! _
- user: {
( `/ }- ^1 i% K/ t. h, P5 O - id: 279058397,# _3 v/ y |+ ?. ?
- firstName: 'Vladislav',8 ?9 S q$ a" k& S7 j
- lastName: 'Kibenko',+ k( Y! @# A* C
- username: 'vdkfrost',
3 y* q, W" U3 J4 {2 ?7 f7 P - languageCode: 'ru',
( B; q6 D9 u9 l& x+ } - isPremium: true,
: l0 o! t9 |) Q0 G! J - allowsWriteToPm: true,
" o( e. {. i. ^0 s - },! S9 _; p/ m/ |7 L4 _( O
- },
0 ?& J( k: ~) ]/ ~* u - };
复制代码 序列化要将启动参数对象表示转换为字符串,开发人员应使用 的 serializeLaunchParams 函数: - import { serializeLaunchParams } from '@telegram-apps/sdk';
, j' u# ^, Q+ P' {& z0 W. } - 9 E# q% Z, o- p4 C. p
- serializeLaunchParams({
8 k% N8 V9 A* G4 r) f - version: '6.7',
8 T* k0 q5 i/ T: _ - platform: 'tdesktop',& E# f" @/ z8 o4 d/ i9 j5 J, o# p
- themeParams: {$ I, E5 Q5 C- w3 w6 t- E8 ~
- bgColor: '#17212b',+ V$ N1 K- b. T& ^! J% T- ?
- buttonColor: '#5288c1',9 j3 Z$ [ w: ?( Z9 V# U" B
- buttonTextColor: '#ffffff',9 z2 u8 d9 D# B2 d, `8 a) J2 X" U
- hintColor: '#708499', Q( N& k( _% d4 o7 y4 o
- linkColor: '#6ab3f3',9 g, ^0 o: _/ \4 Y
- secondaryBgColor: '#232e3c',
1 }$ U( E: d/ q3 } - textColor: '#f5f5f5',, H7 N3 x: b, a }4 t
- },0 R' \1 v+ i% S, R/ d2 J0 r: c& @- z
- });
. @: z5 w6 |3 C0 Z" Y+ H
. Q" Z: ^$ b* q3 s7 d3 G1 ]/ D- // Result:
5 j& L5 W( \8 q, o1 \ - // tgWebAppVersion=6.7
, ]- X' d$ j" H, t& s( J( } - // &tgWebAppPlatform=tdesktop A' z9 m. ^; q* k _. c6 U
- // &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';: e8 ^& n( z! _1 o6 q
- ) N1 ]# s& x- s9 @* \7 z7 J. `+ v
- const launchParams = retrieveLaunchParams();
复制代码
) E( y* ?0 P2 Q6 \. L' ^& A! z, g
|