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

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

回答

收藏

Telegram 小程序 | TypeScript @telegram-apps/sdk-svelte

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

Svelte.js 软件包提供了开发人员在开发微型 应用程序时可能有用的实用工具。
. |( i9 S/ a0 _0 }" g4 D" f$ `5 H+ C' M/ w6 H; ^
. j3 k6 p/ o- F0 h! K9 ?

TIP

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

安装

在继续之前,假定您已经安装了 svelte-js 软件包,因为它是此软件包的同级依赖关系。

pnpm :

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

npm :

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

yarn :

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

INFO

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

用法

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

index.svelte

  1. <script>
    6 U/ i; o2 M( T7 A2 M: G! t; U4 C
  2.   import { init, backButton } from '@telegram-apps/sdk-svelte';  G, _% }- r% R: s' I; Q# v
  3. . `" l  i5 F4 U5 o, z  x/ ]6 `% @9 R
  4.   import { BackButton } from './BackButton.svelte';
    . U# Q. ~8 y- `0 |8 }$ [
  5. 6 @) C6 b3 v% t4 C" T
  6.   // Initialize the package.
    5 n2 s! B' l: P! W
  7.   init();1 y& p/ l, U4 _, l7 N
  8. </script>
    4 R9 ]+ a8 p9 |2 N8 z: q

  9. ) R8 v( l, m- b5 ^0 v
  10. <template>1 U5 B! s3 e- L0 f- B% |
  11.   <BackButton />8 ?! m5 _1 D' ?9 z
  12. </template>
复制代码

BackButton.svelte

  1. /**  d3 A+ r7 z7 `$ Q3 x; u3 X4 E
  2. * Component which controls the Back Button visibility.
    4 p, K. s4 S! j% f9 \) c
  3. */* V2 l- |6 {# _6 k! n: m4 Q
  4. <script>( u5 h" X( C1 |# `: F2 D9 j! N
  5.   import { onMount, onDestroy } from 'svelte';8 M* u  t7 O& M: G; i. c6 T
  6.   import { backButton, useSignal } from '@telegram-apps/sdk-svelte';( g9 ]0 I0 }) O

  7. 1 m- o; w9 O! n3 G3 e# S
  8.   const isVisible = useSignal(backButton.isVisible);
    7 [+ b, s$ B: x7 u/ I
  9. 2 ~* E7 x% [0 E
  10.   $: console.log('The button is', isVisible.value ? 'visible' : 'invisible')1 M! h: l( h" p* Q$ q+ ], W
  11. / ~  v. D8 V8 F! b
  12.   onMount(() => {
    * p+ H+ S9 l2 G2 l
  13.     backButton.show();- }. q- i3 h+ V' h5 Q
  14.   });( X' \: O2 a9 s
  15. ; v8 V' t7 ?% H* F8 P, z
  16.   onDestroy(() => {
    8 Z7 [8 w, H+ P* o7 |, v/ H, M5 c
  17.     backButton.hide();) y2 c9 h; [  @" ^7 F% q
  18.   });
    : p: X. d! j" J8 O: t, C( {$ i6 l' X
  19. </script>; L& n( c# I2 k! P1 z$ Z

  20. 5 q1 d. F0 r- Z* j7 p
  21. <template></template>
复制代码
HooksuseSignal

该辅助工具允许您在应用程序中使用我们的 signals。它 返回一个 Svelte ref,每次信号发生变化时,该 ref 都会更新

  1. <script>' E5 C( x) R  D! b( ]! H" o. Z
  2.   import { onMount, onDestroy } from 'svelte';5 n0 C! E7 @7 g; [2 ~
  3.   import { backButton, useSignal } from '@telegram-apps/sdk-svelte';
    1 F7 S% M' X. `
  4. 5 T3 w1 U- P! F- k( @9 r$ f* H
  5.   const isVisible = useSignal(backButton.isVisible);& ~4 G$ A9 s5 k
  6. , E" W7 q/ H: T+ e5 [2 W" c
  7.   $: console.log('The button is', isVisible.value ? 'visible' : 'invisible')
    3 `0 r, S0 V; {2 I" a9 {  [
  8. . L$ V2 g# m. q; |( E
  9.   onMount(() => {1 b8 o9 g* y; x  R7 l$ G  }6 r
  10.     backButton.show();4 k1 u# Y$ n3 K, b
  11.   });+ y. b  S# d* f# Q7 x7 @
  12.   V3 e0 s5 N4 c
  13.   onDestroy(() => {
    % H( K  a3 p# {
  14.     backButton.hide();
    8 c7 a- g( C" {4 `" |9 q. M, @  D
  15.   });
    ) Q* X4 S, c& q3 b$ s
  16. </script>
    7 p2 B& G) i5 V( y$ d  U& S

  17. $ }1 V5 I. R0 f5 o, p& z
  18. <template></template>
复制代码
$ X) G/ w! j1 p. q6 n
useLaunchParams

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

  1. <script>4 D  `6 x* v% w2 }' u3 L: H2 z! q
  2.   import { useLaunchParams } from '@telegram-apps/sdk-svelte';* c& F9 M; t1 z" m% [: n- K8 Y
  3. 3 p% @% w8 u* e. c2 s+ ?
  4.   const lp = useLaunchParams();( @$ i  A: g2 ?, B* R+ Y- X
  5. </script>1 @% a4 B% W1 C5 k

  6. % Q1 U5 U+ C/ d2 h
  7. <template>
    5 N* t8 Z8 {  x
  8.   <div>Start param: {{ lp.startParam }}</div>9 _5 t# r# k7 B: |* K
  9. </template>
复制代码
( c! P: G* K" L: T, b
$ q' Q3 h) B: s
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则