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

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

回答

收藏

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

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

主题参数

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

解析

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

Usage Example :

  1. import { parseThemeParams } from '@telegram-apps/sdk';4 q+ o# I5 B" V) ~& K
  2. & ]. b8 ~4 `7 `
  3. parseThemeParams({/ h$ k7 M, p; ?/ A% t6 D- L
  4.   accent_text_color: "#6ab2f2",) l  L& Y2 x* X4 l9 U+ O! U
  5.   bg_color: "#17212b",
    / t9 g' f) e" i' W" c! d% v( x% u3 W* H9 D
  6.   button_color: "#5288c1",& Z( D- d1 r9 s: e" G7 Q9 _
  7.   button_text_color: "#ffffff",/ ~/ j% V# U# W; S6 D9 _" r8 @
  8.   destructive_text_color: "#ec3942",
    / }' t* ?% z# g3 g  S9 @
  9.   header_bg_color: "#17212b",9 P, i- x4 [* W) X& ?
  10.   hint_color: "#708499",
    ! C% P4 |9 m1 Y0 y$ N
  11.   link_color: "#6ab3f3",. k2 R' k" A: x9 p) Q! i
  12.   secondary_bg_color: "#232e3c",
    ) i8 {" l3 b* r9 S# J
  13.   section_bg_color: "#17212b",( u% h6 u6 F; ?2 K0 U: P9 B
  14.   section_header_text_color: "#6ab3f3",' k, D( m) X$ o- g% T1 M5 |
  15.   subtitle_text_color: "#708499",: u% p. U; O) x1 s& O
  16.   text_color: "#f5f5f5") H3 L, r4 d; S$ ]  n
  17. });
复制代码

Expected Result :

  1. const result = {
    . r+ \3 ?+ Z9 y) p& u& w
  2.   accentTextColor: "#6ab2f2",, q+ q1 z" u# y' u0 b4 T
  3.   bgColor: "#17212b",
    . m$ X' H3 P" T+ }  I! a- Y9 f
  4.   buttonColor: "#5288c1",& c! L# ?) a$ r  X
  5.   buttonTextColor: "#ffffff",
    ( ?% ?5 B4 y$ e& a. B5 i: A
  6.   destructiveTextColor: "#ec3942",0 |$ q# ^3 I0 U
  7.   headerBgColor: "#17212b",
    - ^+ X/ d+ w  a4 J, d
  8.   hintColor: "#708499",* O* T+ P) Q$ Q3 e
  9.   linkColor: "#6ab3f3",
    : H& D9 u' H" r8 C5 n6 L/ }
  10.   secondaryBgColor: "#232e3c",
    9 l. b, `8 a! L! D4 @5 e
  11.   sectionBgColor: "#17212b",
    , N8 i- R- m5 C9 h' e' j, Z
  12.   sectionHeaderTextColor: "#6ab3f3",
    : b: Y4 {2 i7 L5 w, R2 }& J3 C( j
  13.   subtitleTextColor: "#708499",- I1 ^% [. |2 s; h( |7 n
  14.   textColor: "#f5f5f5"$ B" `, E- d; p( {3 ~" t* w% a- [
  15. };
复制代码

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

3 Z! p' P$ `7 K! m* ]+ R" Z
序列化

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

  1. import { serializeThemeParams } from '@telegram-apps/sdk';
    6 t" i0 n7 |3 d$ x# {. j- T# z' J7 ~
  2. ) _% I/ b4 b8 M3 W2 h3 `9 h
  3. serializeThemeParams({
    & j) V( f9 v7 y$ e5 q& W* {
  4.   accentTextColor: "#6ab2f2",% j3 N- T& i  P1 p6 T. P4 |  w
  5.   bgColor: "#17212b",3 n2 M5 d6 K6 {! m- G  X! A
  6.   buttonColor: "#5288c1",
    & T7 u* O4 M& O# S! i! |5 T  _
  7.   buttonTextColor: "#ffffff",
    7 R0 s3 z9 f2 h- f$ }3 O* N1 {& f# v
  8.   destructiveTextColor: "#ec3942",+ L! M& N0 E! n, _6 P& q
  9.   headerBgColor: "#17212b",
    " m( z! A9 {$ B; b
  10.   hintColor: "#708499",4 V9 x5 i& U. E5 N  }
  11.   linkColor: "#6ab3f3",
    , l/ Y  p( v# o/ Q$ C5 J! w
  12.   secondaryBgColor: "#232e3c",
    2 q7 {& A+ k& z1 G: z1 K' Z% \( P8 Z
  13.   sectionBgColor: "#17212b",
    6 ^8 `" v7 [) [
  14.   sectionHeaderTextColor: "#6ab3f3",2 B; w! X( x. c0 j9 a
  15.   subtitleTextColor: "#708499",
    $ C# \0 x2 O! l- N! |& z  F$ f
  16.   textColor: "#f5f5f5"
    & W9 D" w- f- {
  17. });& J3 Y& P$ B* M2 x7 l+ g8 n

  18. 1 e7 r- W  e; Z$ B
  19. // Result:2 j, B8 n1 K" L; w. R& ]+ w% R
  20. // `{3 M* O5 b" `! G/ q& d5 z) {1 Y4 }6 B4 N5 D
  21. //   "accent_text_color":"#6ab2f2",, B6 y$ @) \! ]! v% o: Y3 ]$ n3 q
  22. //   "bg_color":"#17212b",
    2 C" T* o+ J3 u
  23. //   "button_color":"#5288c1",- o) H. k5 i  d2 O
  24. //   "button_text_color":"#ffffff",: k3 A2 c- y9 J* b+ v& q/ W
  25. //   "destructive_text_color":"#ec3942",
    $ y2 c3 _* I- S  N$ f* H" E
  26. //   "header_bg_color":"#17212b"," N0 R; r( `: v0 `& a; X
  27. //   "hint_color":"#708499",
    3 Z' s! s' D8 z
  28. //   "link_color":"#6ab3f3",
    3 d7 t5 }% |8 x1 h0 V. x
  29. //   "secondary_bg_color":"#232e3c",
    ; c# r2 x5 n3 t  N
  30. //   "section_bg_color":"#17212b",
    + X% l% j6 R! @+ X
  31. //   "section_header_text_color":"#6ab3f3",
    % p& t3 O% ~" [# _9 ~3 n
  32. //   "subtitle_text_color":"#708499",
    : S; Y7 I! F0 [* _/ P+ j7 I/ Q2 e
  33. //   "text_color":"#f5f5f5"# R4 W6 _" N3 p+ y
  34. // }`
复制代码
9 W1 s8 N( Y! j
+ {( i& {- L2 }! Z3 [/ J, b8 L4 F! Q

3 W$ y+ r7 K# x7 u( h! \
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则