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

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

回答

收藏

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

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

主题参数

本节 SDK 涵盖与 主题参数 相关的主题。

解析

要解析作为主题参数的值,软件包提供了 parseThemeParams 方法。 该 方法接受一个 JSON 字符串对象或 JavaScript 对象,返回 ThemeParams 接口。 如果提供的数据无效,则会出错。

Usage Example :

  1. import { parseThemeParams } from '@telegram-apps/sdk';5 o& j9 P1 d" e, o6 y8 |- W* i
  2. ! B$ T. E4 P; y/ X3 l1 u  h
  3. parseThemeParams({
    3 Y) e4 p* o7 N% B
  4.   accent_text_color: "#6ab2f2",
    & n) r0 `( F: O& u
  5.   bg_color: "#17212b",0 C! H7 Y1 J  `
  6.   button_color: "#5288c1",
    ' }+ U3 r/ R, r- T5 c) r8 f
  7.   button_text_color: "#ffffff",+ `* _, O2 Q' n) u
  8.   destructive_text_color: "#ec3942",% A* r* [% _4 r  J
  9.   header_bg_color: "#17212b",! {( N0 d- p( _9 C/ w; t) @
  10.   hint_color: "#708499",
    , v4 @" x( R' A% o9 |% v2 f
  11.   link_color: "#6ab3f3",+ C7 i+ |2 q$ e1 Q
  12.   secondary_bg_color: "#232e3c",- r6 ?- }+ A* d+ y  s. n
  13.   section_bg_color: "#17212b",& W. \9 S9 |4 J+ m$ T
  14.   section_header_text_color: "#6ab3f3",; g  n1 j" D$ u! h; X( M; n+ z. |
  15.   subtitle_text_color: "#708499",
    * h/ n! v7 N3 @1 s
  16.   text_color: "#f5f5f5"" d$ J6 }0 C# e/ o6 V: I0 E
  17. });
复制代码

Expected Result :

  1. const result = {
    $ d8 r% _) _, K* B9 G7 F! a& H: y
  2.   accentTextColor: "#6ab2f2",
    9 G, ~1 n0 ?0 @( q  g5 T: S6 S
  3.   bgColor: "#17212b",' ^; }' B# U& A* m- ^5 [
  4.   buttonColor: "#5288c1",
    ! |2 {, ^* ~6 T
  5.   buttonTextColor: "#ffffff",
    4 [+ Z. O7 u, r& l; O
  6.   destructiveTextColor: "#ec3942",
    / ?0 {8 @  a2 V* b+ M
  7.   headerBgColor: "#17212b",
    8 \# L0 a4 n8 X+ P' H6 d6 ^
  8.   hintColor: "#708499",$ Y5 C* N8 p3 s' k
  9.   linkColor: "#6ab3f3",6 N$ P1 b! F6 \) p) u3 A! S. d
  10.   secondaryBgColor: "#232e3c",% p0 r! Y" @3 e$ t' P
  11.   sectionBgColor: "#17212b",- O0 Q& k" R) y/ ]
  12.   sectionHeaderTextColor: "#6ab3f3",3 i4 C$ M8 T& j! f" D# W
  13.   subtitleTextColor: "#708499",# {5 {: m6 l$ v) H  L
  14.   textColor: "#f5f5f5"1 D4 F& z; q& v- f
  15. };
复制代码

假设每个属性都使用蛇形大小写,它会将其转换为驼峰形大小写。

) o5 R, k5 k4 p+ N
序列化

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

  1. import { serializeThemeParams } from '@telegram-apps/sdk';! ^7 F* w4 U2 Z% s. S# W* T( q
  2. 9 |" w5 v& q- W* K& d
  3. serializeThemeParams({
    ( l! {# C  u) M0 E
  4.   accentTextColor: "#6ab2f2",
    + Z; u1 w' \' d  I
  5.   bgColor: "#17212b",1 V6 a. z! @1 t# }
  6.   buttonColor: "#5288c1",
    7 `- j8 Q3 r2 c
  7.   buttonTextColor: "#ffffff",/ L% C# K& d/ I& y
  8.   destructiveTextColor: "#ec3942",
    , [6 L7 ]2 n) Q: _
  9.   headerBgColor: "#17212b",
    # b' J( [: n" A* A
  10.   hintColor: "#708499",
    9 N1 M+ i1 {5 {
  11.   linkColor: "#6ab3f3",
    : ~0 |6 z0 F$ V3 A; T. n
  12.   secondaryBgColor: "#232e3c",1 o! t8 Q, S. ~& z8 _
  13.   sectionBgColor: "#17212b",4 S. P( D. G4 r+ Z# p
  14.   sectionHeaderTextColor: "#6ab3f3",) w% s8 d* I) ~3 O" o" A2 S7 B3 m8 S
  15.   subtitleTextColor: "#708499",
    . @- Z: W; Y5 Y
  16.   textColor: "#f5f5f5"0 T7 [' v+ k& I3 L# ]7 a
  17. });9 x: j; i, s) w$ ~* n" i* R; E4 o' x

  18. 7 G. y8 L- b  O& @; T
  19. // Result:9 H& R8 |2 M, `* `! O
  20. // `{
      l4 g2 r5 u5 x5 ~, ?- h6 [
  21. //   "accent_text_color":"#6ab2f2",
    3 A+ P/ E* d) L4 j6 p
  22. //   "bg_color":"#17212b",
    / Y8 \7 p5 I" Q. Q7 m+ ]3 e
  23. //   "button_color":"#5288c1",
    7 V: j! w5 D7 R5 k2 g
  24. //   "button_text_color":"#ffffff",- u7 N# t- M7 `# w% L4 Q' j% x1 V& b
  25. //   "destructive_text_color":"#ec3942",
    $ U- u4 Y6 }, X
  26. //   "header_bg_color":"#17212b",9 |2 I; }9 H4 E9 g9 F+ D/ _
  27. //   "hint_color":"#708499",
    # z2 r7 N+ m6 X8 ]; j2 Y
  28. //   "link_color":"#6ab3f3",
    8 n' C  [: l; Y+ ^& w
  29. //   "secondary_bg_color":"#232e3c",1 a7 ]2 c' }/ N: d5 M. q( c# L
  30. //   "section_bg_color":"#17212b",
    - c1 O2 A+ k& D; ?
  31. //   "section_header_text_color":"#6ab3f3",
    / X  w# j$ R" _  Z, c. y
  32. //   "subtitle_text_color":"#708499",3 u- p* q% H% j7 C' a6 |  d
  33. //   "text_color":"#f5f5f5": R0 H/ O( x4 F% p4 [) N
  34. // }`
复制代码
& `, Z8 R% a+ U( E! i
% v: m. M, l6 d% F4 ?& c! J9 s
/ p. k5 Q4 J0 j
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则