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

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

回答

收藏

Telegram小程序 UI | 主题设计

开源社区 开源社区 8782 人阅读 | 0 人回复 | 2025-02-19

本帖最后由 riyad 于 2025-2-21 19:50 编辑 5 I- e" N3 s- Y' g0 r

9 A; u5 S6 W6 ?( Q( `: W迷你应用程序是一种网络应用程序,旨在拥有原生外观。 这不仅包括使用模仿本地元素的组件 ,还包括采用父应用程序的颜色 方案。: x; _+ j8 U4 m% c! l) r8 K
: f: ^& u/ ^" Y* x1 ?2 X
迷你应用程序的颜色目前与 Telegram 应用程序中使用的颜色一致。 迷你应用程序应使用这些颜色,以确保外观的一致性和原生性。- ?3 N, p; G* _2 p2 F) [9 Y
4 h/ U: r' X- G- T6 U  }' k' q/ q
检索) I% J$ ~& R2 v  G( c. b3 Z
应用启动参数. h; L* n7 w8 F! D; f& i9 G
Telegram 小应用程序通过名为 tgWebAppThemeParams 的应用启动参数提供主题数据。 该 参数表示一个序列化 JSON 对象,其中包含一系列可选属性,每个 属性描述一种调色板颜色。1 K7 u' t5 g* Q4 I+ d

5 s' D& g. S( F" K4 S, I8 \下面是一个完整的参数值示例:
& x& J  n* L9 F$ X' {& `
' [) Z9 }, J' i) I$ i* l8 _5 q' q) o{  "accent_text_color": "#6ab2f2",  "bg_color": "#17212b",  "button_color": "#5288c1",  "button_text_color": "#ffffff",  "bottom_bar_bg_color": "#ffffff",  "destructive_text_color": "#ec3942",  "header_bg_color": "#17212b",  "hint_color": "#708499",  "link_color": "#6ab3f3",  "secondary_bg_color": "#232e3c",  "section_bg_color": "#17212b",  "section_header_text_color": "#6ab3f3",  "subtitle_text_color": "#708499",  "text_color": "#f5f5f5"}
3 y- m( o" y# u4 J$ N) q: ]1 C* U: ^* F. K
Telegram 迷你应用程序方法不过,通过应用启动参数检索主题数据并不是唯一的方法。 Telegram 小应用程序 还允许通过名为 web_app_request_theme 的方法 获取主题。调用此方法后,Telegram 将发出名为 theme_changed 的事件 。 该事件 的有效载荷包含一个名为 theme_params 的属性,其格式如上一节所述。
2 F; |0 x; K- F; S7 o
- [! i8 u6 Q& N  I
背景和标题颜色' E4 C# F0 x' ^# n! e* U; w7 E
只要迷你应用程序始终显示在原生组件(由 header 和 body 等部分组成)中,Telegram 迷你应用程序也允许更改其颜色。
; m; s: K3 _. }: U0 H
9 }" z8 |& Q- v$ m6 o) W8 h
要更改标题颜色,开发人员应使用 web_app_set_header_color 方法,该方法提供了一种通过使用主题键或自定义 RGB 字符串来设置颜色的方法。
9 d! H  A9 b" i' [- S
* f8 d* l8 P% S4 U. U( D
要更新主体颜色,需要使用 web_app_set_background_color 方法。
3 k. J+ K# K7 t: {& {; a
1 f7 |! x4 [! u7 F7 ]9 ~8 p$ V
/ B+ x& Q* q2 R* X
! G% W: w4 _; v" A- ^2 g" t1 S- _0 k% N7 B  t8 ~
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则