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

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

1回答

0收藏

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

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

迷你应用程序

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

安装

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

Variable :

  1. import { miniApp } from '@telegram-apps/sdk';2 k4 J4 R- }, V* |3 x7 T

  2. 2 c3 B6 C; ]9 n/ a  _
  3. miniApp.mount();
    $ F/ y' V: r: B  p: [
  4. miniApp.isMounted(); // true
复制代码

Functions :

  1. import { mountMiniApp, isMiniAppMounted } from '@telegram-apps/sdk';
    3 q4 }- N' g. z% T2 H& w: `
  2.   v/ E9 j' N9 D$ k
  3. mountMiniApp();
    : \$ u4 _! i* V' `! R* A
  4. isMiniAppMounted(); // true
复制代码

INFO

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


' _$ n7 Y. {; t4 r' W0 U# `

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

Variable :

  1. miniApp.unmount();
    % Y- w: S$ W+ c' B$ T
  2. miniApp.isMounted(); // false
复制代码
Functions :# k3 a, m* P# B) {, y4 K
9 ?8 f. J2 Z1 q* e3 W9 t
  1. import { unmountMiniApp, isMiniAppMounted } from '@telegram-apps/sdk';
    , J+ ]* M/ ^5 f! l0 E$ Y! N7 I" ], r

  2. 9 }) H! y* Q+ Z1 f% C
  3. unmountMiniApp();9 r+ L6 B# p. T; j
  4. isMiniAppMounted(); // false
复制代码
绑定 CSS 变量

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

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

Variable :

  1. miniApp.bindCssVars();) @9 v. b! s1 O. [. K& f, m
  2. // Creates CSS variables like:- m$ x$ @# y8 C0 }
  3. // --tg-bg-color: #aabbcc! }& p% b$ I* x( [2 @! l
  4. // --tg-header-color: #aabbcc
    / j$ w* @  {: H7 }5 `: Y
  5. / ~& m6 b" V+ [# U7 u" O4 Y
  6. miniApp.bindCssVars(key => `--my-prefix-${key}`);
    * K- H  ?: Z8 X, W4 R% z" J
  7. // Creates CSS variables like:
      k8 O  W: W6 I
  8. // --my-prefix-bgColor: #aabbcc
    7 R( ?8 D: o1 h9 {$ M: T  E
  9. // --my-prefix-headerColor: #aabbcc
    6 l3 T) _8 R6 D9 q* d8 e& `

  10. ' }$ N0 q0 d( \
  11. miniApp.isCssVarsBound(); // true
复制代码

Functions :

  1. import { bindMiniAppCssVars, isMiniAppCssVarsBound } from '@telegram-apps/sdk';1 Z6 {6 j0 y+ _( `
  2. ( [* @) V! A# I/ l' c% [
  3. bindMiniAppCssVars();
    - d( N+ C( f0 B$ B
  4. // Creates CSS variables like:% ~+ L8 q1 i4 }
  5. // --tg-bg-color: #aabbcc# V5 q8 i6 N# U! {' G
  6. // --tg-header-color: #aabbcc
    4 c, s  ], {7 D

  7. ( O" j3 ]* }- k: a8 h5 f) x' k
  8. bindMiniAppCssVars(key => `--my-prefix-${key}`);
    1 @' T0 i) T/ q3 B
  9. // Creates CSS variables like:. b! J+ i  H* y7 I% J3 v1 m5 P
  10. // --my-prefix-bgColor: #aabbcc. F  v2 N/ _, Y# x
  11. // --my-prefix-headerColor: #aabbcc$ c" g* u, z3 K' m* w  ?
  12. ' ]$ j; Y0 F9 S8 m; `' F$ H
  13. isMiniAppCssVarsBound(); // true
复制代码
页眉颜色

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

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

Variable :

  1. if (miniApp.setHeaderColor.isSupported()) {: |$ I1 @% V4 |7 Z* ?0 a: G
  2.   miniApp.setHeaderColor('bg_color');' O. r- r" U! @" [' P4 _9 o( \7 t
  3.   miniApp.headerColor(); // 'bg_color'
    % P9 D/ o' C2 D. X& H7 [
  4. }
    ' `' z8 t0 w; M2 `6 l; n6 U6 K  i
  5. 4 T8 s* i0 I$ W- W. H
  6. if (
    $ f3 t( h! C0 n9 K8 K$ M8 H
  7.   miniApp.setHeaderColor.isSupported(). q8 R, U& Y) w2 P% Y4 m9 L8 C7 ?% l% N
  8.   && miniApp.setHeaderColor.supports('color')
    ! m7 w. D5 @  V
  9. ) {" T- v2 ~: |4 n4 ~2 v, s
  10.   miniApp.setHeaderColor('#aabbcc');# W) M; z: G/ K# S2 I
  11.   miniApp.headerColor(); // '#aabbcc'
    # @: U# k2 U8 w6 W
  12. }
复制代码

Functions :

  1. import {
    % I1 h: E, ^9 C8 U
  2.   setMiniAppHeaderColor,0 s* M0 ~* G: M4 x3 W+ g/ M8 ?
  3.   miniAppHeaderColor,: Q7 i( e# O6 Z3 b# J9 K! E
  4. } from '@telegram-apps/sdk';
    4 ]- {4 g# \3 O- c
  5. 1 {( k4 f& Y: e
  6. if (setMiniAppHeaderColor.isSupported()) {5 x, Y5 @3 ~3 ?( W2 w! P! N
  7.   setMiniAppHeaderColor('bg_color');
    6 p+ }" i$ Z0 f3 K! o% d
  8.   miniAppHeaderColor(); // 'bg_color'+ w6 S5 _% M8 ?1 ~' @: J: d; N: e
  9. }  I7 ^  P' }; x6 e. h1 c, `
  10.   ]# X. M1 ]" c
  11. if (; N' o- ~5 Y% }6 W. Y
  12.   setMiniAppHeaderColor.isSupported(); {3 ^+ s8 t3 Y  t4 T0 j6 K
  13.   && setMiniAppHeaderColor.supports('color')
    , {2 I1 l9 j9 x, T) D' h3 x. g
  14. ) {/ ~0 w6 @4 E& b" m( l- l# m
  15.   setMiniAppHeaderColor('#aabbcc');
    * _$ F& q  O4 x; x  ?; `8 u
  16.   miniAppHeaderColor(); // '#aabbcc'
    - j; N0 h8 l9 r. F/ b: W4 Z
  17. }
复制代码
背景颜色

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

Variable :

  1. if (miniApp.setBackgroundColor.isSupported()) {  J  c7 n2 F$ y6 A. `
  2.   miniApp.setBackgroundColor('#ffffff');9 K. o2 W9 G( v0 o' Q: \
  3.   miniApp.backgroundColor(); // '#ffffff': E8 i% S! Q- D9 o% I& l; x
  4. }
复制代码

Functions :

  1. import { : n" z/ q- E( u  B0 \
  2.   setMiniAppBackgroundColor,9 u" e; `& M* \+ m1 i6 G/ ~9 m
  3.   miniAppBackgroundColor,6 l; z7 e& U  K! p7 v8 |2 f2 d
  4. } from '@telegram-apps/sdk';5 o* Z$ v* C: w, h& Q3 y

  5. & {+ i4 t* U6 r9 L% \% z5 ]* Z
  6. if (setMiniAppBackgroundColor.isSupported()) {
    & d8 b' W! P8 y: \/ g
  7.   setMiniAppBackgroundColor('#ffffff');9 ~& S2 A9 @! L
  8.   miniAppBackgroundColor(); // '#ffffff'
    5 D' n" p0 i/ e! y1 N) e# T
  9. }
复制代码
方法close

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

Variable :

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

Functions :

  1. import { closeMiniApp } from '@telegram-apps/sdk';5 X' ~- V. U, @9 q* }: D$ q

  2. $ S7 z4 o. d5 F* |6 C
  3. closeMiniApp();
复制代码
ready

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

Variable :

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

Functions :

  1. import { miniAppReady } from '@telegram-apps/sdk';4 A8 n0 V9 O9 N* B8 P" M

  2. , j: d7 ^% I3 C& ?9 n5 v
  3. miniAppReady();
复制代码

TIP

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

/ l8 C( D5 E( [, N
分享到:

回答|共 1 个

沙盆

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

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

本版积分规则