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

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

回答

收藏

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

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

启动参数

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

解析

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

Usage Example :

  1. import { parseLaunchParams, launchParamsParser } from '@telegram-apps/sdk';
    $ q( g1 e/ L# N& n
  2. " Q" i: j% [' }2 f/ V$ G' P$ K
  3. parseLaunchParams(
    $ ~0 |5 d% `; J! G0 _: ^) w
  4.   new URLSearchParams([
    1 z+ d7 h7 a- x3 R
  5.     ['tgWebAppVersion', '6.7'],: l- r' Z' r2 K/ z0 H
  6.     ['tgWebAppPlatform', 'tdekstop'],
    " }) q3 O8 p8 V* p! S; q% v$ v
  7.     ['tgWebAppBotInline', '1'],
    1 R' _1 ?8 _8 d6 m$ i' R; L
  8.     ['tgWebAppData', new URLSearchParams([
    3 F% j0 p9 d+ Y' s6 I6 b  w
  9.       ['query_id', 'AAHdF6IQAAAAAN0XohAOqR8k'],) X1 h; N; s4 A( }# C+ Q# }4 k# u
  10.       ['user', JSON.stringify({
    5 C5 e* B1 T2 ~
  11.         id: 279058397,
    5 O3 \! U) p9 a8 `# {
  12.         first_name: 'Vladislav',% j. B1 C+ Y. r( [) }  }' @
  13.         last_name: 'Kibenko',, F9 ]+ e# ^' M. v# s8 T) ]
  14.         username: 'vdkfrost',
    " a% R1 |+ S  i$ f! \
  15.         language_code: 'ru',
    6 `# y5 d) z0 K8 z5 w. {) K
  16.         is_premium: true,
    ; ]0 D& S# |; a% o
  17.         allows_write_to_pm: true,
    : x5 V, q, T1 P
  18.       })],+ M& C/ q. h  X8 h  U& z) R
  19.       ['auth_date', '1691441944'],
    ; F/ Y3 _# I9 L# @! r5 x
  20.       ['hash', 'abc'],& p& d# e& B* r3 q
  21.     ]).toString()],
    " t- P. |  a7 a" U# g2 u
  22.     ['tgWebAppThemeParams', JSON.stringify({6 Z9 M8 I" c3 |# E. o' f3 I& C1 x
  23.       bg_color: '#17212b',
    * f( T8 x! }) y$ B+ H
  24.       button_color: '#5288c1',0 S8 e" o7 k$ m
  25.       button_text_color: '#ffffff',: m$ J2 _  U2 a% a5 u4 q
  26.       hint_color: '#708499',
    ( ^! R/ T- E7 Q. Y, a! D9 H
  27.       link_color: '#6ab3f3',( D6 M" j, s3 ~6 r9 ~& s
  28.       secondary_bg_color: '#232e3c',. T7 Y* V' J# B3 U- A( x
  29.       text_color: '#f5f5f5',. ^) ^5 u2 \& r7 [0 D, M
  30.     })],
    + B0 o+ x4 s9 ~2 X; U6 M+ G
  31.   ]),5 ]8 L7 g! y9 s
  32. );
复制代码

Expected Result :

  1. const result = {
    1 g. _$ ?1 J9 b) b5 i" l
  2.   botInline: true,# A, e% V4 q+ F/ K
  3.   version: '6.7',
    . A* A, B0 {- n  k4 T
  4.   platform: 'tdesktop',7 q! k; V7 J' R
  5.   themeParams: {$ \3 E- \- }  d5 k0 [) f4 I6 _
  6.     bgColor: '#17212b',
    + ?: z5 n2 s  P6 D. ?- C5 X
  7.     buttonColor: '#5288c1',! F1 {# D8 J  ?) {& @/ |
  8.     buttonTextColor: '#ffffff',
    , @5 l; W" S) `6 n3 y
  9.     hintColor: '#708499',* j* B- f5 N! u" v4 y! d& O
  10.     linkColor: '#6ab3f3',
    ! O/ w/ y9 m; I0 W6 W
  11.     secondaryBgColor: '#232e3c',  w4 C, q. O8 Y# \) a+ R
  12.     textColor: '#f5f5f5',$ l/ ~5 ^* m& Z6 t0 E0 h
  13.   },
    , a* V5 i( b( |7 M
  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',/ n3 m' {2 w) ~+ O" l
  15.   initData: {2 s+ j# h- B& v, r' M  ?- w
  16.     queryId: 'AAHdF6IQAAAAAN0XohAOqR8k',
    9 y* Q% \5 U' l: B* e7 d
  17.     authDate: new Date(1691441944000),. D) r/ [  q/ I# l
  18.     hash: 'abc',
    + d$ m7 R3 `2 W1 s
  19.     user: {) j6 H; a# I4 m# X$ j- s# S
  20.       id: 279058397,2 J: \9 e$ L/ ^
  21.       firstName: 'Vladislav',# Z, |$ o7 l+ T; P2 n& x' p
  22.       lastName: 'Kibenko',6 H, T& B  E$ h, ]
  23.       username: 'vdkfrost',
    & W$ P: @) T8 \
  24.       languageCode: 'ru',
    ; R& w/ z+ |& D/ `0 c7 {) e
  25.       isPremium: true,
    8 {) I, i# i' ?$ Q9 n1 f
  26.       allowsWriteToPm: true,
    6 l7 W1 G. C6 P( X" s+ o
  27.     },
    ; n$ _7 c- {2 D: G9 L: |2 H
  28.   },/ z$ Y) M; u1 t" z" R) N7 L
  29. };
复制代码
序列化

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

  1. import { serializeLaunchParams } from '@telegram-apps/sdk';4 X8 _- `% {) M) a4 ]
  2. * v( L) Z5 m6 C: G' ]! d) w1 V$ x
  3. serializeLaunchParams({
    7 ]8 h0 O* ~$ R) h
  4.   version: '6.7',
    3 h: p$ D9 l5 g" ^- \' u
  5.   platform: 'tdesktop',  Q" Y% ^9 ~7 ~4 ?& ~5 o3 o
  6.   themeParams: {
    % s  {  N* J1 t5 H: L2 D
  7.     bgColor: '#17212b',* v8 N/ `* ]+ h5 F$ O& T
  8.     buttonColor: '#5288c1',
    : y' S2 g+ m$ p  V
  9.     buttonTextColor: '#ffffff',0 c% I! k: V  r- V$ k
  10.     hintColor: '#708499',( C/ H* q% k$ H8 E# N' @6 n
  11.     linkColor: '#6ab3f3',
    % m% K0 t- |' e9 S) ^
  12.     secondaryBgColor: '#232e3c',
      Y/ |4 e- N; [# }& w; `
  13.     textColor: '#f5f5f5',
      P: _8 C* N3 T
  14.   },
    - f, k" I# [9 |. l
  15. });1 ^. \) t) U% ^- Q
  16. 7 D0 w( N  G$ q6 m7 x
  17. // Result:2 D% m) e% w; w3 q0 S7 k
  18. // tgWebAppVersion=6.7) V" D; H4 Z, S2 J9 o. o8 T# H
  19. // &tgWebAppPlatform=tdesktop
    % j; l. D: F3 W& Y3 I
  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';9 `- H/ k# ^. P9 X7 o2 ]: N2 T

  2. 5 `1 @) Q" y6 v' A
  3. const launchParams = retrieveLaunchParams();
复制代码
( ~- z8 Z/ y. ?) g+ ^
- F; c: W$ P5 p) L5 u& a* a0 b; i
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则