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

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

1回答

0收藏

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

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

迷你应用程序

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

安装

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

Variable :

  1. import { miniApp } from '@telegram-apps/sdk';
    " J+ u& v. U) v* r9 V: s
  2. & p* v. j; s- N$ P- F; x) {0 l
  3. miniApp.mount();
    & T4 D: K6 x3 S7 C  p4 u
  4. miniApp.isMounted(); // true
复制代码

Functions :

  1. import { mountMiniApp, isMiniAppMounted } from '@telegram-apps/sdk';6 u6 N3 G4 o+ `
  2. 8 Z6 s6 Y* x" ^$ P0 F$ z
  3. mountMiniApp();
    ( g/ c7 P1 }* w  X5 m; D+ b
  4. isMiniAppMounted(); // true
复制代码

INFO

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

. G1 T, ^8 T7 i

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

Variable :

  1. miniApp.unmount();
    ! f4 A7 _, V" ^: B) o, ~; ?
  2. miniApp.isMounted(); // false
复制代码
Functions :, |) E2 `" Q9 U; O+ K
' B6 A6 H6 U" K8 n$ b' @) v
  1. import { unmountMiniApp, isMiniAppMounted } from '@telegram-apps/sdk';
    + Q6 J; k; i2 O( @  W; B$ O* U

  2. " c) Y3 c: G, ?% g% ?
  3. unmountMiniApp();5 \* {) c; ~* h' ~. ^
  4. isMiniAppMounted(); // false
复制代码
绑定 CSS 变量

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

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

Variable :

  1. miniApp.bindCssVars();/ {9 o* b: J$ b/ S
  2. // Creates CSS variables like:, ^6 L& T$ e9 ], r4 j8 s  b5 a
  3. // --tg-bg-color: #aabbcc# o  m; T- ~$ l
  4. // --tg-header-color: #aabbcc
    5 H, F, F; X/ N+ ?. v6 i# s. ]" [
  5. 0 ^7 o8 R; k9 M* t
  6. miniApp.bindCssVars(key => `--my-prefix-${key}`);2 {2 e. d8 _+ f+ V; o/ P7 E' r/ O
  7. // Creates CSS variables like:. l  y9 D' ]# F. G
  8. // --my-prefix-bgColor: #aabbcc
    ! B& C& ]0 Q& x  i- B$ X% P( I
  9. // --my-prefix-headerColor: #aabbcc
    + I) Q- O5 W4 X

  10. ; [' O" q! y7 @
  11. miniApp.isCssVarsBound(); // true
复制代码

Functions :

  1. import { bindMiniAppCssVars, isMiniAppCssVarsBound } from '@telegram-apps/sdk';
    9 \4 `) u* L% l+ t$ d

  2. 3 @% f" n: J  T; N7 |0 E0 w) k9 l2 E
  3. bindMiniAppCssVars();
    6 K3 z" {- w$ d5 D$ W1 x. T
  4. // Creates CSS variables like:& g: n0 ?! s" U' a. h( v0 ~
  5. // --tg-bg-color: #aabbcc* i7 V3 Z2 b6 N" U3 n
  6. // --tg-header-color: #aabbcc1 W9 Y( Q3 @0 \) B
  7. 5 C2 \1 C! {% u  t
  8. bindMiniAppCssVars(key => `--my-prefix-${key}`);
    7 m  \9 z. u, W  W* g$ P6 b7 R
  9. // Creates CSS variables like:# j  f1 \7 t7 B; y' U7 z( R
  10. // --my-prefix-bgColor: #aabbcc0 M  a3 u0 u" H% z7 V
  11. // --my-prefix-headerColor: #aabbcc& \: X9 T# u, _/ y

  12. ) E0 }* M  l, P, Y2 k+ B) {5 g2 ]
  13. isMiniAppCssVarsBound(); // true
复制代码
页眉颜色

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

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

Variable :

  1. if (miniApp.setHeaderColor.isSupported()) {: X" r* O8 ~/ I+ U  ?, n7 d
  2.   miniApp.setHeaderColor('bg_color');: Z* ]5 U( b) ?  A# S+ l0 p
  3.   miniApp.headerColor(); // 'bg_color'
    + ~/ l5 q) }8 n: q
  4. }
    3 E- }1 u* ~( G+ ~- g9 Q% n& t: i- R

  5. 1 p6 `. U$ v+ w4 ]9 v: @  x& Z! U
  6. if (; Q4 ~3 ]1 V% U0 Q
  7.   miniApp.setHeaderColor.isSupported()5 q" l) }8 W. P9 B; m* e  o' A; M, f
  8.   && miniApp.setHeaderColor.supports('color')5 U: [; T* i! G
  9. ) {9 z/ p, i" J- v9 P  g
  10.   miniApp.setHeaderColor('#aabbcc');6 Q# T+ z  V- _& x; j! b  \0 n
  11.   miniApp.headerColor(); // '#aabbcc'
    / z) T& L  ^/ f+ b& C) a
  12. }
复制代码

Functions :

  1. import {2 m; N3 }. d. q( }/ Y* Z
  2.   setMiniAppHeaderColor,
    % y$ y; \  D7 [2 P; e' Y' Z
  3.   miniAppHeaderColor,4 W; I$ y  d# m" [
  4. } from '@telegram-apps/sdk';) Z. g6 X0 A9 M0 \- [" P" a
  5. / K# Q% A* D& X- [. L2 j; S+ s+ y$ o
  6. if (setMiniAppHeaderColor.isSupported()) {4 j% w$ q% u1 }: v6 K& m2 x
  7.   setMiniAppHeaderColor('bg_color');$ N! ]: \- P6 g7 H! l' N
  8.   miniAppHeaderColor(); // 'bg_color'. \; v6 n" S# K1 Y3 r6 K! Z" C
  9. }. {, M7 r) u$ ]8 _% l- P# k  v- \
  10. 3 l; F, w, P4 V; _) `: D, t1 ~
  11. if (+ M; E6 _  l! K. T" c% B1 ?
  12.   setMiniAppHeaderColor.isSupported()
    $ z5 n! I0 Y5 a$ x/ U
  13.   && setMiniAppHeaderColor.supports('color')! D) B4 P& _; A. [
  14. ) {% t) l6 }6 c. e( X( K& m) }+ |
  15.   setMiniAppHeaderColor('#aabbcc');& I  m+ K/ ^* @% p8 k
  16.   miniAppHeaderColor(); // '#aabbcc'
    . y. m! N" Y/ r& R
  17. }
复制代码
背景颜色

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

Variable :

  1. if (miniApp.setBackgroundColor.isSupported()) {
    ( Y; a4 v$ q# j" u4 V
  2.   miniApp.setBackgroundColor('#ffffff');
    , e) A' g/ ~- |+ y+ E( `
  3.   miniApp.backgroundColor(); // '#ffffff'
    8 `5 U  r9 e; I8 x% J* n" e
  4. }
复制代码

Functions :

  1. import {
    ! c" ]" c, V6 V3 M6 _5 {  w; n
  2.   setMiniAppBackgroundColor,7 P# w* w! s% u2 Q. l
  3.   miniAppBackgroundColor,
    # e6 V& M7 u6 c8 I& I; K/ d1 i
  4. } from '@telegram-apps/sdk';
    7 {; ?; l: `! Q3 _$ j

  5. , v5 I! L$ z7 d- ^) o2 d8 L/ }3 k
  6. if (setMiniAppBackgroundColor.isSupported()) {
    . O7 y& M  M. H. a! a
  7.   setMiniAppBackgroundColor('#ffffff');$ g# G) v3 G- k3 b& m2 Q+ t
  8.   miniAppBackgroundColor(); // '#ffffff'1 n7 b1 h  S. I, C& h
  9. }
复制代码
方法close

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

Variable :

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

Functions :

  1. import { closeMiniApp } from '@telegram-apps/sdk';5 Z0 W7 P, ]* n3 E! S
  2. ( t% R, O6 [) I5 }( G. ^* A
  3. closeMiniApp();
复制代码
ready

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

Variable :

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

Functions :

  1. import { miniAppReady } from '@telegram-apps/sdk';
    # N) N! V1 m+ q

  2. 0 H/ s0 u5 W3 Z3 O, t; H# x
  3. miniAppReady();
复制代码

TIP

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

, l5 y, f! m7 |: K9 _
分享到:

回答|共 1 个

沙盆

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

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

本版积分规则