启动参数 本节 SDK 涵盖与 launch parameters 相关的主题。 解析要解析作为启动参数的值,软件包提供了 parseLaunchParams 方法。 方法接受以字符串或 URLSearchParams 实例形式呈现的查询参数,并返回 LaunchParams 接口。 如果传递的数据无效,则会出错。 Usage Example : - import { parseLaunchParams, launchParamsParser } from '@telegram-apps/sdk'; t/ R, z/ J! N! R
. [1 ]8 x4 A2 N& o- parseLaunchParams(
s+ x- N$ b; Q Q3 I, @2 C - new URLSearchParams([
5 R3 O4 x' ]+ T/ Z+ j0 E8 C+ R - ['tgWebAppVersion', '6.7'],; Q0 ^) R w2 g3 E4 ?) y) P
- ['tgWebAppPlatform', 'tdekstop'],
" x! o1 V7 z& K4 U$ D+ H9 H4 @ - ['tgWebAppBotInline', '1'],6 H( Q; z! t+ ^' d' P
- ['tgWebAppData', new URLSearchParams([7 _( j; L7 ^7 k" {. U
- ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'],; u" V- C/ a4 s2 m7 Z
- ['user', JSON.stringify({
5 Y2 S& k m! p - id: 279058397,
% K# d& Z5 [1 e( p4 \- i - first_name: 'Vladislav',1 ~" O) {" A' a6 g0 A4 t2 C
- last_name: 'Kibenko',
# P6 l1 K" i. [1 T3 M, A) l - username: 'vdkfrost',3 L1 o( o3 D4 C( G, Q% a2 J$ y
- language_code: 'ru',; O6 [9 r* k1 U6 h. g
- is_premium: true,$ k- J4 L- j- A/ j* R' N
- allows_write_to_pm: true,8 ~ [ b) J9 @* g* ]. `
- })],
8 l1 a4 B' l4 `7 u4 l8 x* w - ['auth_date', '1691441944'],( B/ D0 C( D, d( p: \0 Z1 S
- ['hash', 'abc'],
. W7 V; S, `; y# I# M1 |$ l; _ - ]).toString()],
! H# F7 Y2 X3 r% A- m. W& J - ['tgWebAppThemeParams', JSON.stringify({
0 w: P( w3 s: Q7 s - bg_color: '#17212b',# O7 }8 B9 p: ^; m. w
- button_color: '#5288c1',+ [7 A3 i. B1 o; W
- button_text_color: '#ffffff',
" Y7 ~# P* i; M - hint_color: '#708499',
# R0 w9 o5 R S# ~! ~ - link_color: '#6ab3f3',
7 ?# o! T# T# h$ E4 d4 v4 L5 e - secondary_bg_color: '#232e3c',
' l5 @& y- t* d2 m$ p1 t7 {+ F - text_color: '#f5f5f5',# T/ n c$ E* F
- })],$ i1 t1 [0 ` b8 T& b6 n; e Y
- ]),& \2 ?1 |* _; l/ S. |6 ^' R
- );
复制代码Expected Result : - const result = {
- P1 j0 p0 {6 ]' f0 U+ v( X- s - botInline: true,- J+ ~6 e1 z/ C" C' z, k& Y
- version: '6.7',
% Y5 P6 A! `& Y7 _ - platform: 'tdesktop',
. b* B! S7 a5 _ - themeParams: {
( o( ^! f+ C1 S: r; r3 X - bgColor: '#17212b',
: i3 E% x+ q! B% J! ~: t - buttonColor: '#5288c1',: S& O" k8 N+ y) m! Q$ O6 U
- buttonTextColor: '#ffffff',
' c! H9 @( V; |3 }, e - hintColor: '#708499',* x0 x2 D* n0 ^$ ?' y2 a; O" D t
- linkColor: '#6ab3f3',1 ?# J6 k3 m) m- n; K G
- secondaryBgColor: '#232e3c',
, m* W1 Y+ ?) X; b - textColor: '#f5f5f5',
; i* [& _5 L/ |+ y" d0 k; h! U( R - },
) L0 o) e- T$ C - 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',3 ~/ h0 k, _4 F
- initData: {
3 y% _6 G0 _/ {4 Y - queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',
- [' K; E) F/ Q' J1 v3 b3 B& g, J X - authDate: new Date(1691441944000),
1 h2 A5 O7 D8 T. N4 f - hash: 'abc',
6 ]$ U3 u2 s) H3 ^) a0 L1 R - user: {# c/ z# ~" a/ w% M
- id: 279058397,
# E$ {. b2 j, d% N1 |- x - firstName: 'Vladislav',
! l8 W& p) H2 n: [) b8 i - lastName: 'Kibenko',
/ c9 s% X' ~" V9 Y% C - username: 'vdkfrost',
& R/ ~3 r. _, Y: h9 m8 z - languageCode: 'ru',6 S1 I; v! w( F$ F. T* ^
- isPremium: true,
# m+ G3 _, n& F3 f9 k - allowsWriteToPm: true,* Y9 j0 ?9 `( r2 h9 a' W4 [
- },
* Y% `7 }2 T q8 d - },
- b3 D" K& c, I2 n/ R" A8 M7 B - };
复制代码 序列化要将启动参数对象表示转换为字符串,开发人员应使用 的 serializeLaunchParams 函数: - import { serializeLaunchParams } from '@telegram-apps/sdk';- h- O- U: Z3 p6 u" \
- ( o% \! u3 P& M5 k6 t. i J, @
- serializeLaunchParams({ Q, d+ N1 I: v5 [
- version: '6.7',
4 b( C; c4 e5 G5 F: s8 J Q% l - platform: 'tdesktop',- h) k. H) g8 d5 y7 x: L
- themeParams: {
& N4 M. P# L3 ?" ?+ T - bgColor: '#17212b',
, p1 ?6 n" Y% c- L. E - buttonColor: '#5288c1',
5 b: W R% F. j e - buttonTextColor: '#ffffff',/ J1 p# V1 `. ~/ m
- hintColor: '#708499',( v0 U9 D& T6 R3 `1 E
- linkColor: '#6ab3f3',
+ b' D/ u: U' M - secondaryBgColor: '#232e3c',/ B( r+ b' r6 u( G0 J# o5 j
- textColor: '#f5f5f5',, s& o- a3 E# H7 c" `* o t$ x
- },
4 T/ `3 m6 M4 q. c8 q# N' q2 W1 G - });4 ?2 P; E, |4 W" l" a6 z
- + v. h( ]- _$ _; I1 B
- // Result:
) y& I2 |+ [, l4 i- L8 G: b$ } - // tgWebAppVersion=6.7
2 R, i) a# U% R9 s - // &tgWebAppPlatform=tdesktop" P$ p# k, w+ ?5 @- v
- // &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';
+ o1 I% z5 W+ e) V4 J - ( h* ^' X, z( k' i- f3 \' ?
- const launchParams = retrieveLaunchParams();
复制代码
# ]6 m7 |' ]3 l$ ]
4 b. d% {* Q' ^# m& h0 H7 H |