English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE คนไทย Français русский

回答

收藏

Telegram 小程序 | TypeScript @telegram-apps/sdk @1.x | 启动参数

开源社区 开源社区 7554 人阅读 | 0 人回复 | 2025-02-23

启动参数

本节 SDK 涵盖与 launch parameters 相关的主题。

解析

要解析作为启动参数的值,软件包提供了 parseLaunchParams 方法。 方法接受以字符串或 URLSearchParams 实例形式呈现的查询参数,并返回 LaunchParams 接口。 如果传递的数据无效,则会出错。

Usage Example :

  1. import { parseLaunchParams, launchParamsParser } from '@telegram-apps/sdk';; g6 g1 {) H2 O: W7 r+ B
  2. % J, H) j6 s; Z7 E" G# V3 Z; k6 q
  3. parseLaunchParams() O5 d1 o6 Y3 D
  4.   new URLSearchParams([2 L# M& |  ^" T# I4 d
  5.     ['tgWebAppVersion', '6.7'],
    % Y: t7 a! Y8 b7 v
  6.     ['tgWebAppPlatform', 'tdekstop'],
    $ i' ^8 G" E0 ^0 F0 g* e
  7.     ['tgWebAppBotInline', '1'],
    ' Y9 O1 v0 m) p# ~2 q% i. e
  8.     ['tgWebAppData', new URLSearchParams([
    & I; C; S- K. e- _
  9.       ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'],  _* h$ Z; K9 R+ @4 \: F7 v
  10.       ['user', JSON.stringify({9 n! i% g& l1 u$ F4 Q* r
  11.         id: 279058397,0 r! g$ n. z6 t  j
  12.         first_name: 'Vladislav',
    0 F0 Y+ G% ~6 ]8 |) D9 X. X
  13.         last_name: 'Kibenko',8 m. t( v  G0 H' A6 X3 L
  14.         username: 'vdkfrost',9 _: A0 p8 K4 ^% n2 i- d; p
  15.         language_code: 'ru',
    $ g5 ~6 e/ o) m$ @2 {
  16.         is_premium: true,
    " V4 Y9 y+ v2 ]- m, r# L, h
  17.         allows_write_to_pm: true,
    ) e4 C$ N# O' m) ~
  18.       })],
      _! R% E3 S& j. E1 O* U
  19.       ['auth_date', '1691441944'],* T' z8 k  @* j; ]7 C/ h( }
  20.       ['hash', 'abc'],7 b( B+ t& \0 Q) B( o8 D
  21.     ]).toString()],
    * m1 l6 X: I: K$ u/ i8 p4 E
  22.     ['tgWebAppThemeParams', JSON.stringify({- N; o) m  l7 \6 Q3 N
  23.       bg_color: '#17212b',; a5 N' v; k; b" k4 O
  24.       button_color: '#5288c1',
    & a/ m5 `1 C* \! o% E2 M3 m
  25.       button_text_color: '#ffffff',
    9 }* o& p  ?' J0 |7 t: ]; ]2 e/ n
  26.       hint_color: '#708499',3 t" V3 b% ~- q4 @
  27.       link_color: '#6ab3f3',
    ) H+ g7 S6 A% y' l* d" O
  28.       secondary_bg_color: '#232e3c',
    ( X5 N( B3 \* g( U9 T& u
  29.       text_color: '#f5f5f5',2 n; f8 U6 g( c6 H. g
  30.     })],8 C) N6 W  }$ n
  31.   ]),
    4 ]8 h* G  c% G1 Y' o8 j
  32. );
复制代码

Expected Result :

  1. const result = {9 M9 A4 @2 V/ F7 F
  2.   botInline: true,
    ) v4 x7 a. q% w+ q9 g6 S: P5 B: R! i
  3.   version: '6.7',* b9 N% k8 p$ P1 @; g. g
  4.   platform: 'tdesktop',0 ]; e  u; ^+ V- z/ u
  5.   themeParams: {0 N/ W+ [# X- i0 _" o
  6.     bgColor: '#17212b',
    , }! X, P+ w* M# A6 p
  7.     buttonColor: '#5288c1',* }3 W6 a9 Z! d4 ^) u; [4 V
  8.     buttonTextColor: '#ffffff',4 i5 ^8 R8 d/ F) Z
  9.     hintColor: '#708499',
    ) K4 k3 @, u0 A) F% ?
  10.     linkColor: '#6ab3f3',# p6 {8 m  D$ }! ~: |
  11.     secondaryBgColor: '#232e3c',6 M8 q  s0 }# d! C! l0 u7 Q- g! n5 r+ t. `
  12.     textColor: '#f5f5f5',& K7 \4 s' ]( \% K6 D9 D3 C
  13.   },' I; q, S* E8 v7 ^& p4 P
  14.   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% ]$ }
  15.   initData: {
    ' R# Y7 ^: l8 Q- S% c
  16.     queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',
    , w% ~- G9 \- s! ~3 {
  17.     authDate: new Date(1691441944000),
    8 J8 ^: ~& |0 X1 w5 A
  18.     hash: 'abc',# E  H; x1 t8 \& J; S' J
  19.     user: {2 U" h2 @- M0 N" m1 q. [" ?
  20.       id: 279058397,
    0 X5 h  {0 M2 }4 W- x  z
  21.       firstName: 'Vladislav',
    ! O* J6 U: L7 t! Y2 _  X; U- ^
  22.       lastName: 'Kibenko',. k# }0 P/ g/ C5 r# F3 v+ s' X4 W5 c& u" O
  23.       username: 'vdkfrost',
    ( ]$ j* X' j3 E( T3 ~
  24.       languageCode: 'ru',% ?9 J. _9 `9 C/ a
  25.       isPremium: true,# R5 z. L( ?% ^% D+ {- v; e
  26.       allowsWriteToPm: true,8 A& Z6 [9 \8 H0 A
  27.     },
    9 B; P& q& D# X  [2 H1 }! r
  28.   },
    7 a+ Y# i) @2 s3 C8 }
  29. };
复制代码
序列化

要将启动参数对象表示转换为字符串,开发人员应使用 的 serializeLaunchParams 函数:

  1. import { serializeLaunchParams } from '@telegram-apps/sdk';
    : e3 E9 m$ `7 f& c

  2. ! ~1 k/ ^  u! ?1 k8 V
  3. serializeLaunchParams({
    # c+ P( ], n3 L0 H
  4.   version: '6.7',% i- K: _+ J+ _
  5.   platform: 'tdesktop',
    ! E5 b. ~7 v* A' U: U+ G. j% g
  6.   themeParams: {
    8 @7 i0 f& N& ~0 [$ L: s' `/ G
  7.     bgColor: '#17212b',. t0 v) y- P. ~* B3 f& Q
  8.     buttonColor: '#5288c1',9 r- \, e! l# }1 R
  9.     buttonTextColor: '#ffffff',
    ; W" j% l- K' g3 B% g
  10.     hintColor: '#708499',4 D! {3 S& w! F9 b7 X7 f8 j
  11.     linkColor: '#6ab3f3',- G& A. J" E/ j
  12.     secondaryBgColor: '#232e3c',
    ; Q" b1 P& |/ z% M0 `3 t
  13.     textColor: '#f5f5f5',4 g  T0 L( I! J8 W
  14.   },2 t. a4 y$ x0 K; p, u( M
  15. });& R3 m. X& k! Z5 _

  16. 8 K1 H# ?+ ?, X$ L0 A
  17. // Result:% g7 o  h) `+ H" S! G# _
  18. // tgWebAppVersion=6.7
    - a! B2 q* ^2 ^: p( z" V
  19. // &tgWebAppPlatform=tdesktop6 b- r- s" q. r+ o' L' ]8 X' {* H# a+ n+ ]
  20. // &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 函数从当前环境中提取启动参数。 如果所有已知数据源都包含无效数据,则 会抛出错误。

  1. import { retrieveLaunchParams } from '@telegram-apps/sdk';0 m; A* l% N  o: a# l
  2. 3 W. v4 k$ j3 [8 z. I
  3. const launchParams = retrieveLaunchParams();
复制代码
6 n$ g* \% Q. p! a; C, s
3 m8 s  q' L" b; x; D* D
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则