启动参数 本节 SDK 涵盖与 launch parameters 相关的主题。 解析要解析作为启动参数的值,软件包提供了 parseLaunchParams 方法。 方法接受以字符串或 URLSearchParams 实例形式呈现的查询参数,并返回 LaunchParams 接口。 如果传递的数据无效,则会出错。 Usage Example : - import { parseLaunchParams, launchParamsParser } from '@telegram-apps/sdk';
$ q( g1 e/ L# N& n - " Q" i: j% [' }2 f/ V$ G' P$ K
- parseLaunchParams(
$ ~0 |5 d% `; J! G0 _: ^) w - new URLSearchParams([
1 z+ d7 h7 a- x3 R - ['tgWebAppVersion', '6.7'],: l- r' Z' r2 K/ z0 H
- ['tgWebAppPlatform', 'tdekstop'],
" }) q3 O8 p8 V* p! S; q% v$ v - ['tgWebAppBotInline', '1'],
1 R' _1 ?8 _8 d6 m$ i' R; L - ['tgWebAppData', new URLSearchParams([
3 F% j0 p9 d+ Y' s6 I6 b w - ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'],) X1 h; N; s4 A( }# C+ Q# }4 k# u
- ['user', JSON.stringify({
5 C5 e* B1 T2 ~ - id: 279058397,
5 O3 \! U) p9 a8 `# { - first_name: 'Vladislav',% j. B1 C+ Y. r( [) } }' @
- last_name: 'Kibenko',, F9 ]+ e# ^' M. v# s8 T) ]
- username: 'vdkfrost',
" a% R1 |+ S i$ f! \ - language_code: 'ru',
6 `# y5 d) z0 K8 z5 w. {) K - is_premium: true,
; ]0 D& S# |; a% o - allows_write_to_pm: true,
: x5 V, q, T1 P - })],+ M& C/ q. h X8 h U& z) R
- ['auth_date', '1691441944'],
; F/ Y3 _# I9 L# @! r5 x - ['hash', 'abc'],& p& d# e& B* r3 q
- ]).toString()],
" t- P. | a7 a" U# g2 u - ['tgWebAppThemeParams', JSON.stringify({6 Z9 M8 I" c3 |# E. o' f3 I& C1 x
- bg_color: '#17212b',
* f( T8 x! }) y$ B+ H - button_color: '#5288c1',0 S8 e" o7 k$ m
- button_text_color: '#ffffff',: m$ J2 _ U2 a% a5 u4 q
- hint_color: '#708499',
( ^! R/ T- E7 Q. Y, a! D9 H - link_color: '#6ab3f3',( D6 M" j, s3 ~6 r9 ~& s
- secondary_bg_color: '#232e3c',. T7 Y* V' J# B3 U- A( x
- text_color: '#f5f5f5',. ^) ^5 u2 \& r7 [0 D, M
- })],
+ B0 o+ x4 s9 ~2 X; U6 M+ G - ]),5 ]8 L7 g! y9 s
- );
复制代码Expected Result : - const result = {
1 g. _$ ?1 J9 b) b5 i" l - botInline: true,# A, e% V4 q+ F/ K
- version: '6.7',
. A* A, B0 {- n k4 T - platform: 'tdesktop',7 q! k; V7 J' R
- themeParams: {$ \3 E- \- } d5 k0 [) f4 I6 _
- bgColor: '#17212b',
+ ?: z5 n2 s P6 D. ?- C5 X - buttonColor: '#5288c1',! F1 {# D8 J ?) {& @/ |
- buttonTextColor: '#ffffff',
, @5 l; W" S) `6 n3 y - hintColor: '#708499',* j* B- f5 N! u" v4 y! d& O
- linkColor: '#6ab3f3',
! O/ w/ y9 m; I0 W6 W - secondaryBgColor: '#232e3c', w4 C, q. O8 Y# \) a+ R
- textColor: '#f5f5f5',$ l/ ~5 ^* m& Z6 t0 E0 h
- },
, a* V5 i( b( |7 M - 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',/ n3 m' {2 w) ~+ O" l
- initData: {2 s+ j# h- B& v, r' M ?- w
- queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',
9 y* Q% \5 U' l: B* e7 d - authDate: new Date(1691441944000),. D) r/ [ q/ I# l
- hash: 'abc',
+ d$ m7 R3 `2 W1 s - user: {) j6 H; a# I4 m# X$ j- s# S
- id: 279058397,2 J: \9 e$ L/ ^
- firstName: 'Vladislav',# Z, |$ o7 l+ T; P2 n& x' p
- lastName: 'Kibenko',6 H, T& B E$ h, ]
- username: 'vdkfrost',
& W$ P: @) T8 \ - languageCode: 'ru',
; R& w/ z+ |& D/ `0 c7 {) e - isPremium: true,
8 {) I, i# i' ?$ Q9 n1 f - allowsWriteToPm: true,
6 l7 W1 G. C6 P( X" s+ o - },
; n$ _7 c- {2 D: G9 L: |2 H - },/ z$ Y) M; u1 t" z" R) N7 L
- };
复制代码 序列化要将启动参数对象表示转换为字符串,开发人员应使用 的 serializeLaunchParams 函数: - import { serializeLaunchParams } from '@telegram-apps/sdk';4 X8 _- `% {) M) a4 ]
- * v( L) Z5 m6 C: G' ]! d) w1 V$ x
- serializeLaunchParams({
7 ]8 h0 O* ~$ R) h - version: '6.7',
3 h: p$ D9 l5 g" ^- \' u - platform: 'tdesktop', Q" Y% ^9 ~7 ~4 ?& ~5 o3 o
- themeParams: {
% s { N* J1 t5 H: L2 D - bgColor: '#17212b',* v8 N/ `* ]+ h5 F$ O& T
- buttonColor: '#5288c1',
: y' S2 g+ m$ p V - buttonTextColor: '#ffffff',0 c% I! k: V r- V$ k
- hintColor: '#708499',( C/ H* q% k$ H8 E# N' @6 n
- linkColor: '#6ab3f3',
% m% K0 t- |' e9 S) ^ - secondaryBgColor: '#232e3c',
Y/ |4 e- N; [# }& w; ` - textColor: '#f5f5f5',
P: _8 C* N3 T - },
- f, k" I# [9 |. l - });1 ^. \) t) U% ^- Q
- 7 D0 w( N G$ q6 m7 x
- // Result:2 D% m) e% w; w3 q0 S7 k
- // tgWebAppVersion=6.7) V" D; H4 Z, S2 J9 o. o8 T# H
- // &tgWebAppPlatform=tdesktop
% j; l. D: F3 W& Y3 I - // &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';9 `- H/ k# ^. P9 X7 o2 ]: N2 T
5 `1 @) Q" y6 v' A- const launchParams = retrieveLaunchParams();
复制代码 ( ~- z8 Z/ y. ?) g+ ^
- F; c: W$ P5 p) L5 u& a* a0 b; i
|