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

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

回答

收藏

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

开源社区 开源社区 10822 人阅读 | 0 人回复 | 2025-02-25

React.js 软件包提供开发人员在开发小型 应用程序时可能会用到的实用工具。- }' h& M4 E. g/ b- a3 N

0 B$ i5 w7 N; m- X

+ Y( V$ D6 J% L1 G; o* f/ mTIP

由于本软件包提供了扩展 @telegram-apps/sdk 功能的实用程序函数 ,建议首先查看 SDK 软件包 文档。

9 X. G* o; ~4 k- D
安装

在继续之前,假定您已经安装了 react 软件包,因为它是 对等软件包的依赖项。

pnpm :

  1. pnpm i @telegram-apps/sdk-react
复制代码

npm :

  1. npm i @telegram-apps/sdk-react
复制代码

yarn :

  1. yarn add @telegram-apps/sdk-react
复制代码

INFO

此软件包完全重新导出 @telegram-apps/sdk 软件包,因此 您无需单独安装。

使用方法

下面是该软件包的一个简单使用示例:

index.tsx

  1. import ReactDOM from 'react-dom/client';
    2 g0 T5 Q. h, J& O& u
  2. import { init, backButton } from '@telegram-apps/sdk-react';
    0 c% c7 j. `1 z* [& u2 I
  3. 4 o2 _, a, m) x1 @
  4. import { BackButton } from './BackButton.js';
      [2 @; r/ h8 h) L6 j# g* B$ G

  5. ; l" r4 O. G- v
  6. // Initialize the package.. I7 R( x/ g( Y- P+ X( w0 E
  7. init();, w* l/ }4 D/ q! d9 d# u
  8. $ b9 }( d6 |) |
  9. // Mount the Back Button, so we will work with $ @9 r8 r: n7 O
  10. // the actual component properties.# l) n( h& S/ _: k) O
  11. backButton.mount();
    ; F4 S% S( M+ R, ?

  12. 0 l1 J% U. |0 ^- y! \" ?
  13. ReactDOM
    ! L& l  z8 u( L+ r( Q: V
  14.   .createRoot(document.getElementById('root')!)
    ; R5 |: r7 \! V+ g- B7 |; h* d: N$ l
  15.   .render(<BackButton/>);
复制代码

Backbutton.ts

  1. import { useEffect } from 'react';  ^+ s0 u) T, _) J4 |: m* n" N
  2. import { backButton, useSignal } from '@telegram-apps/sdk-react';2 I5 M* {0 p# Q' A% Q

  3. 7 ^$ W- N; i- }
  4. /**
    4 r0 q* |; M2 e9 V6 h
  5. * Component which controls the Back Button visibility.) w8 @" x' L" Z: H9 b$ n: R! j' _; K
  6. */: x3 j: b; }; ?' C# F+ N8 w
  7. export function BackButton() {2 _5 e3 ?0 a* ^- C, {
  8.   const isVisible = useSignal(backButton.isVisible);& p+ L+ x. |/ J; {1 }
  9.   ^8 c/ d" [* Z+ `9 M
  10.   useEffect(() => {
    + ~0 |6 Q) F+ Z( [0 E+ h
  11.     console.log('The button is', isVisible ? 'visible' : 'invisible');
    7 S$ x, W9 X5 s) n/ }! @
  12.   }, [isVisible]);
    ; k& }, {5 \7 L# o) {) @
  13. / y# ]# g! ^6 u2 x& Q# F2 ^( l7 w
  14.   useEffect(() => {
    . Z) v; u. m) V1 S
  15.     backButton.show();# `; H2 w# h& Y& L+ C1 T+ f- Q
  16.     return () => {
    * X/ J  d& e# s8 _# @, U, q
  17.       backButton.hide();- V" C+ A+ X: T& k
  18.     };4 J9 g$ U- v, W
  19.   }, []);: u1 o! r' l8 `# b% g! F+ _8 c( i. i

  20. 8 ?6 i8 L; s) P: r9 }
  21.   return null;  \7 F6 W' i/ |  I, B
  22. }
复制代码
HooksuseSignal

该辅助工具允许开发人员在 应用程序中使用我们的 signals

它返回基础值,并在信号值发生变化时进行更新。

  1. import { useEffect } from 'react';+ @9 W; |/ v/ t4 c7 I
  2. import { backButton, useSignal } from '@telegram-apps/sdk-react';! I4 `8 a% B6 Y! ]# c  W
  3. 3 K* ]& h. j( s
  4. function Component() {
    ; W* r0 R' \5 D3 w
  5.   const isVisible = useSignal(backButton.isVisible);
    # q$ l& O" ]1 N( p. z) x# ?
  6. " o; Q' `# l9 G! \7 [
  7.   useEffect(() => {: n. X' z2 s# s6 I  q+ K7 w
  8.     console.log('The button is', isVisible ? 'visible' : 'invisible');
    + G( o1 t8 w9 [' r
  9.   }, [isVisible]);
      u) a0 p) i  {4 |: U9 v9 G  u

  10. 1 W! h* `; I3 {
  11.   useEffect(() => {! o, E3 W7 {9 `  r* ^
  12.     backButton.show();/ L  \4 E. X; Q
  13.     return () => {0 t- l7 Q: T, f# a
  14.       backButton.hide();; f. i  S1 ^) [* y5 ]4 T
  15.     };
    + h( K0 M! h  {- V
  16.   }, []);
    6 j& W+ s/ @7 R8 M( [- I; a( g

  17.   L* S( a# x7 a( Q
  18.   return null;
    5 Y( U; P2 m5 o4 S
  19. }
复制代码
useLaunchParams

返回迷你应用程序启动参数的函数。

  1. import { useLaunchParams } from '@telegram-apps/sdk-react';
    2 j, E0 A! S, n/ u/ {5 n( |( o) U  U
  2. " d( U3 z  h# K$ R
  3. function Component() {% b# m0 R" ~. k. v9 D! {" y
  4.   const lp = useLaunchParams();3 V, G0 e. d' x+ a0 A# C; E% K
  5.   return <div>Start parameter: {lp.startParam}</div>;7 A/ v: y9 q, P
  6. }
复制代码
9 i, O4 ^. ?4 w; E4 c: [( |4 u
8 c, g" T) u' W1 P$ `" v
  G! c+ u1 ^3 a- K0 j. p) u
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则