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

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

1回答

0收藏

Telegram 小程序 | TypeScript @telegram-apps/sdk @2.x | 组件 | 小程序

开源社区 开源社区 11728 人阅读 | 1 人回复 | 2025-02-25

迷你应用程序

💠组件 负责管理 Telegram 迷你应用程序内的功能。

安装

在使用该组件之前,必须使用 mount 方法安装该组件,该方法会更新 isMounted 信号属性。

Variable :

  1. import { miniApp } from '@telegram-apps/sdk';
    $ R6 U  M2 X% S% g& Q9 f

  2. 1 G+ `& ^. P6 D, ~" O
  3. miniApp.mount();4 r+ R/ i# w& i- p4 A
  4. miniApp.isMounted(); // true
复制代码

Functions :

  1. import { mountMiniApp, isMiniAppMounted } from '@telegram-apps/sdk';
    6 q7 ?) G+ V; T' h% u3 v; p3 E
  2.   R( A# x2 V, I+ a, h  l8 c* n( `
  3. mountMiniApp();- q% T1 q2 p( u1 {( [% `/ x
  4. isMiniAppMounted(); // true
复制代码

INFO

mount方法还会挂载 Theme Params作用域,以提取正确的 配置值。

5 L  ?! D. W% f6 J+ ^! Z

要卸载组件,请使用 unmount 方法:

Variable :

  1. miniApp.unmount();
    ) \3 Q' j2 s4 c$ N( \+ p( d' _
  2. miniApp.isMounted(); // false
复制代码
Functions :
6 E- d0 O7 C3 |, R# s; m1 o
$ x+ U4 N+ I  x1 H
  1. import { unmountMiniApp, isMiniAppMounted } from '@telegram-apps/sdk';- |0 F& d9 x0 u$ _9 T- |
  2. 6 h- t% E; ?9 M. L( G2 {4 @
  3. unmountMiniApp();
    ' K- C* D: Q$ b5 ~  B  {
  4. isMiniAppMounted(); // false
复制代码
绑定 CSS 变量

要通过 CSS 变量公开 miniApp 属性,请使用 bindCssVars 方法。 调用该方法后,isCssVarsBound 信号属性会被更新。

此方法可选择接受一个函数,该函数可将 bgColor 和 headerColor 的值转换为 CSS 变量名。 默认情况下,数值会以前缀 --tg- 转换为 kebab 大小写。

Variable :

  1. miniApp.bindCssVars();
    7 \) ?! \6 K# h1 [# r' w' x
  2. // Creates CSS variables like:/ D( N: V% ?& m+ K: N
  3. // --tg-bg-color: #aabbcc) d8 R1 G4 g5 M5 |% y
  4. // --tg-header-color: #aabbcc% P6 V# a3 {* b8 S6 L

  5. ' j; ^9 V0 |+ k% ~& Q
  6. miniApp.bindCssVars(key => `--my-prefix-${key}`);# {1 t( J3 R; H- r0 I
  7. // Creates CSS variables like:7 q. K' `! E5 N5 x) M
  8. // --my-prefix-bgColor: #aabbcc6 J' [( e/ o: y2 u' [
  9. // --my-prefix-headerColor: #aabbcc
    * T. ~, j5 O5 ]) }: Q- t7 i# q) R; L* v

  10. . v- I4 I( i$ r- Q) J
  11. miniApp.isCssVarsBound(); // true
复制代码

Functions :

  1. import { bindMiniAppCssVars, isMiniAppCssVarsBound } from '@telegram-apps/sdk';
    3 U! A5 f! P2 ~  f$ j

  2. $ e+ H, j  d! t- b% R  r1 A( P" Y
  3. bindMiniAppCssVars();( u8 j9 U/ |+ L" r
  4. // Creates CSS variables like:. j# {/ D* g; ^6 O8 g$ Q9 P2 p
  5. // --tg-bg-color: #aabbcc' C0 r! c: d. G/ T2 ?; x4 U9 w
  6. // --tg-header-color: #aabbcc! C3 _+ z/ {1 [8 d8 G2 m2 w
  7. / P* [; f$ G) y2 M
  8. bindMiniAppCssVars(key => `--my-prefix-${key}`);0 M  Z- M7 r) l) W
  9. // Creates CSS variables like:
    $ f+ e  s# H+ k% X2 i5 p# \8 ?, g
  10. // --my-prefix-bgColor: #aabbcc) J* a3 \9 r- f" S
  11. // --my-prefix-headerColor: #aabbcc8 x2 e! ^4 }1 g3 ]1 M8 L6 g
  12. ( A& s" C8 K. [3 l$ ]
  13. isMiniAppCssVarsBound(); // true
复制代码
页眉颜色

要更改迷你应用程序的标题颜色,可使用方法 setHeaderColor。 反过来, 会更新 headerColor 信号属性值。

该方法接受 RGB 颜色值或以下字符串之一:bg_color、secondary_bg_color。

Variable :

  1. if (miniApp.setHeaderColor.isSupported()) {/ M4 S% v; y. x' s1 I# e7 t8 N8 p* L0 b
  2.   miniApp.setHeaderColor('bg_color');
    - ]% Z* y" u4 Z7 m/ Q
  3.   miniApp.headerColor(); // 'bg_color'
    . d2 a3 L4 F& z7 D/ J# j% \/ p
  4. }, _* S; _6 h9 H1 f# ^

  5. 6 X4 R0 I4 f6 t0 q
  6. if (
    ' L' O# G' y$ J7 m# K* z2 e
  7.   miniApp.setHeaderColor.isSupported()
    1 P2 n6 O+ w. x7 y2 t4 Y* M
  8.   && miniApp.setHeaderColor.supports('color')
    ! g6 G; i6 |# X4 t
  9. ) {
    & `8 F' r! l1 a" [
  10.   miniApp.setHeaderColor('#aabbcc');
    9 ~; Z5 _. X  J# M) g. F) v/ T5 {& |
  11.   miniApp.headerColor(); // '#aabbcc'$ w) V2 m  F+ X5 }) ~
  12. }
复制代码

Functions :

  1. import {: r! l# T! g7 i" a1 ?: T$ P- \
  2.   setMiniAppHeaderColor,' h' T7 \/ n% _/ C0 A* S& r
  3.   miniAppHeaderColor,( v+ m5 C4 U" [! F0 H, K, Z
  4. } from '@telegram-apps/sdk';1 k1 D* v3 T" E: p3 @0 K
  5. , g8 m" m' y$ m
  6. if (setMiniAppHeaderColor.isSupported()) {
    , i7 I& g, v) ~, P; w" p$ L9 T2 K4 m
  7.   setMiniAppHeaderColor('bg_color');3 X" _5 Q- v1 B2 {- [
  8.   miniAppHeaderColor(); // 'bg_color': m  D5 T) Q- a5 f1 g( X/ h! u
  9. }
    * c3 [! R9 i3 C) c3 e
  10. * Y5 P# N; y" m. T3 y  l. b
  11. if (
    . l. n% N( [+ P) H6 j- E
  12.   setMiniAppHeaderColor.isSupported()
    4 R6 ]/ Y' {% ?8 _5 `
  13.   && setMiniAppHeaderColor.supports('color'). a/ N4 d0 ~! C* V* W& l* B
  14. ) {! I! C, }1 c' Q+ S
  15.   setMiniAppHeaderColor('#aabbcc');
    : i1 f; |( N" c: {/ |, G# j
  16.   miniAppHeaderColor(); // '#aabbcc') R& F/ A, p# F2 F" y
  17. }
复制代码
背景颜色

要更新迷你应用程序的背景颜色,请使用 setBackgroundColor 方法。 调用 时,该方法会更新 headerColor 信号属性值。

Variable :

  1. if (miniApp.setBackgroundColor.isSupported()) {3 j. u7 \% X+ R# U  Z# Q$ C
  2.   miniApp.setBackgroundColor('#ffffff');
    0 R9 r3 M2 v1 e) f+ @
  3.   miniApp.backgroundColor(); // '#ffffff'$ ?5 T! c7 p- K$ I
  4. }
复制代码

Functions :

  1. import { , \( l' z! B# ^. a) W3 O1 c
  2.   setMiniAppBackgroundColor,8 [" C' X+ A. U) Y8 _
  3.   miniAppBackgroundColor," u) _' r) Z" F3 x1 J% H# w' C( H+ f
  4. } from '@telegram-apps/sdk';
    . K6 A3 r" m, V( E

  5. % L8 \3 T( T! }2 a! T5 @
  6. if (setMiniAppBackgroundColor.isSupported()) {
    + @1 _/ W0 z* \' C  h5 a
  7.   setMiniAppBackgroundColor('#ffffff');
    ' z' h0 ~* n) _' q1 `8 ^) ~
  8.   miniAppBackgroundColor(); // '#ffffff'; z8 l' v( z. B! Z, G  x9 c7 i" E; o
  9. }
复制代码
方法close

要关闭迷你应用程序,请使用 close 方法。

Variable :

  1. miniApp.close();
复制代码

Functions :

  1. import { closeMiniApp } from '@telegram-apps/sdk';1 F- j9 G) Z5 z" w- I2 k0 A# S" U4 F

  2. 2 o4 Y( L& l1 T3 ~) ?6 M! Q
  3. closeMiniApp();
复制代码
ready

要发出 Mini App 已准备好显示的信号,请使用 ready 方法。 调用后, 加载占位符会被隐藏,而迷你应用程序则会显示出来。

Variable :

  1. miniApp.ready();
复制代码

Functions :

  1. import { miniAppReady } from '@telegram-apps/sdk';9 k* [. M: `7 U; o; }' \8 ^
  2. ; C( S6 o0 `1 C: ]+ s& L9 r' k
  3. miniAppReady();
复制代码

TIP

在加载基本界面元素后尽早调用该函数,以确保 顺畅的用户体验。

, w% @- i' v- h5 }1 U' K
分享到:

回答|共 1 个

沙盆

发表于 2025-2-26 18:27:24 | 显示全部楼层

膜拜大神!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则