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

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

回答

收藏

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

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

主题参数

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

解析

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

Usage Example :

  1. import { parseThemeParams } from '@telegram-apps/sdk';' e+ @! u) N* b7 A) c& s) _7 u
  2. $ [" z! t: |% w0 v! {
  3. parseThemeParams({% v! k9 }; s" H" @% u! Y3 J
  4.   accent_text_color: "#6ab2f2",! q: l, W. ]" D
  5.   bg_color: "#17212b",
    1 m, Y/ L" k+ ]; h( Y. Z: O+ m
  6.   button_color: "#5288c1",% M: N9 l0 u& y( ^+ `
  7.   button_text_color: "#ffffff",% u& O+ m0 `2 L% U/ Q
  8.   destructive_text_color: "#ec3942",+ q  i" h. d7 X2 v
  9.   header_bg_color: "#17212b",
    , o" k0 P2 c' C  m2 M. n
  10.   hint_color: "#708499"," J7 I; k7 R1 [( k9 {
  11.   link_color: "#6ab3f3",! f4 O% |. m  ?& I  v0 q
  12.   secondary_bg_color: "#232e3c",2 L2 c7 q7 I- g5 @0 R
  13.   section_bg_color: "#17212b",5 w% _2 F, R( O& ^! A0 k
  14.   section_header_text_color: "#6ab3f3"," F2 M0 }$ W( ^: y$ L6 H/ d) F' k0 o6 v2 |
  15.   subtitle_text_color: "#708499",9 |0 u6 i' Z3 |% l$ v
  16.   text_color: "#f5f5f5"
    ( K! Q0 }% O- g5 g  u
  17. });
复制代码

Expected Result :

  1. const result = {
    9 M& s+ N" ?  d' K! O- u; O
  2.   accentTextColor: "#6ab2f2",
    ( z) H2 J7 e1 |3 O: q; h0 C2 |
  3.   bgColor: "#17212b",  H5 L( b/ d( R8 T
  4.   buttonColor: "#5288c1",
    * e6 c/ B4 q% d- C7 j
  5.   buttonTextColor: "#ffffff",
    0 G. m! p# V; d
  6.   destructiveTextColor: "#ec3942",. N1 d3 D; g0 f9 G4 x. h6 l  R
  7.   headerBgColor: "#17212b",
    4 j- O: n  h$ I5 _/ c
  8.   hintColor: "#708499",
    $ ^5 y3 m' L4 l& ?8 O
  9.   linkColor: "#6ab3f3",6 x7 C- M7 A+ b- i6 c9 W
  10.   secondaryBgColor: "#232e3c",5 H. y1 C( ?$ @: O, u; O  e
  11.   sectionBgColor: "#17212b",
    " x9 [8 E2 E0 U6 E% q% x# M
  12.   sectionHeaderTextColor: "#6ab3f3",
    : N& z7 E0 N! f- ]! R0 k2 V6 I/ H( P2 j
  13.   subtitleTextColor: "#708499",
    3 C8 B" P$ @# s, E+ N' U+ \9 J' N- q
  14.   textColor: "#f5f5f5"% f1 j' j+ f" ?" r. P9 H
  15. };
复制代码

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


$ A* o3 g( }, h! f$ O; f序列化

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

  1. import { serializeThemeParams } from '@telegram-apps/sdk';0 o( Z7 ~7 F$ \  a* S. K3 e

  2. ; ~) Q4 M" j  e6 N
  3. serializeThemeParams({
    3 ?$ m4 S, x. t8 y( i4 Q+ D! ]" f! `
  4.   accentTextColor: "#6ab2f2"," _9 r/ @* I  w' N, Y$ t" a; e
  5.   bgColor: "#17212b",
    % _$ r' i/ o# K1 W  d4 F
  6.   buttonColor: "#5288c1",9 e6 M0 p, W0 o3 Z" w  [
  7.   buttonTextColor: "#ffffff",
    & E: S& f( p3 ^/ J
  8.   destructiveTextColor: "#ec3942",( B1 {& N7 _6 b/ O1 h6 m0 X
  9.   headerBgColor: "#17212b",9 L, K2 [) ~& t5 |
  10.   hintColor: "#708499",4 m: [7 x4 Y  U
  11.   linkColor: "#6ab3f3",
    5 K1 s7 E* i* |. g3 {7 Z
  12.   secondaryBgColor: "#232e3c",, E: B; q0 Z3 H# c1 L& L- C+ S
  13.   sectionBgColor: "#17212b",$ M6 S+ C& W' D: t9 C3 l2 T$ W" c
  14.   sectionHeaderTextColor: "#6ab3f3",
    # ]8 F0 T9 N  k2 _% S. n  @
  15.   subtitleTextColor: "#708499",3 B# ^" ?9 v% ]! X& c
  16.   textColor: "#f5f5f5"$ A- K- D$ T$ I# n0 E, C
  17. });
    * a& z1 [+ M) J4 v; A, u- o9 y

  18.   Z( M$ G2 e4 m* B! n- A4 _. {
  19. // Result:  o8 I* H2 [; {! g- O' a' M
  20. // `{
    & s3 T4 G  T0 e! U  }) A! {
  21. //   "accent_text_color":"#6ab2f2",
    9 s# t, L. {. Z  [; ?8 ?# ~! K
  22. //   "bg_color":"#17212b",  K* l8 k/ P3 x% ]
  23. //   "button_color":"#5288c1",
    & k; `% T0 s; c  d# P2 c( o
  24. //   "button_text_color":"#ffffff",
    / J; o- n" S0 G8 E. `- ~
  25. //   "destructive_text_color":"#ec3942",, [" r. x- Y7 k5 ]- L
  26. //   "header_bg_color":"#17212b",
    0 K! N# l/ J1 I! Y4 d4 {3 v" `
  27. //   "hint_color":"#708499",; X3 J- m: Q0 X* K( O- p$ E; s
  28. //   "link_color":"#6ab3f3",
    # B8 v( n6 h+ @: t# \5 _& M0 e2 j; ]
  29. //   "secondary_bg_color":"#232e3c",# n; B& l; W2 p/ U( i( b
  30. //   "section_bg_color":"#17212b",2 m+ d2 D7 A; w
  31. //   "section_header_text_color":"#6ab3f3",
      z5 i6 v& A8 W& j
  32. //   "subtitle_text_color":"#708499",4 P# [4 m8 E8 f% B7 [+ J
  33. //   "text_color":"#f5f5f5"+ v6 G! H2 G: W3 H6 p' y' k
  34. // }`
复制代码

  w* J+ K' |( f: |' z( s; Y4 ^1 M7 {4 L
, c3 v. M8 Q+ F$ Y% `
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则