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

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

回答

收藏

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

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

Svelte.js 软件包提供了开发人员在开发微型 应用程序时可能有用的实用工具。. k' U: l- j/ A2 G7 M

0 {  n3 H' y/ k1 n9 y* P+ t

! y5 Q6 q9 [  Q% r- |1 ~

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>; k$ ?$ a2 z9 q, ?3 t
  2.   import { init, backButton } from '@telegram-apps/sdk-svelte';% v' U- [6 Z% Y0 K

  3. ; |+ }6 g2 z$ t( h. ]0 D* z
  4.   import { BackButton } from './BackButton.svelte';
    , |( x5 ~# Q5 y. W+ ^3 x1 ^7 j3 t

  5. # |6 N! n' k& @( n6 ^# A
  6.   // Initialize the package.
    & \% |: O$ g! ?* `1 P' H. X8 |: F
  7.   init();  [: {; e- d, w! `) F: @  g+ b8 d
  8. </script>
    ! e6 P* ~6 n8 M: @
  9. 2 Z2 h& G% O( h9 e
  10. <template>- k+ u9 }8 [/ G, f0 C
  11.   <BackButton />9 X0 q: ]0 l6 ?
  12. </template>
复制代码

BackButton.svelte

  1. /**! P+ c! p. L" h' o9 [5 J% f0 j
  2. * Component which controls the Back Button visibility.0 y! V  m# L- ^+ |9 _  s) H* c5 m
  3. */
    4 L' t5 \( E& `2 o$ f9 i) N2 g5 ^
  4. <script>
    * Q5 f) b8 V; z3 Z4 m* \
  5.   import { onMount, onDestroy } from 'svelte';  s2 G9 ]- `; K, {7 Z4 B7 m
  6.   import { backButton, useSignal } from '@telegram-apps/sdk-svelte';
    & f; l$ e+ Y+ f, j$ l7 ^$ a( T9 p+ b

  7. 4 k! M! n- ?" L& l
  8.   const isVisible = useSignal(backButton.isVisible);4 ?! @. ~1 C1 R  }9 C: k
  9. * X! n8 x/ |' D5 @0 `8 |
  10.   $: console.log('The button is', isVisible.value ? 'visible' : 'invisible')1 N$ G6 w% L( x" [
  11. , ~- \. k7 f+ X' `
  12.   onMount(() => {
    & A: E) L; U# i3 _% d+ |7 T
  13.     backButton.show();
    ! ]+ |4 q, }  B* z) m4 S7 C
  14.   });. P4 r/ s% z: z) A' P; g
  15. 1 b4 F4 ~; t7 i9 t6 E' T8 }$ f
  16.   onDestroy(() => {
    ; P3 X! A/ z2 {& n
  17.     backButton.hide();  \4 o2 K% R9 V8 ]4 P
  18.   });
    ! O. W; d* U4 F4 `  `3 o# ~, u
  19. </script>( \3 P6 M8 {& [
  20. 2 K; O  E) [+ ]6 T3 l
  21. <template></template>
复制代码
HooksuseSignal

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

  1. <script>
    4 X& h* ~% o& H) r  `
  2.   import { onMount, onDestroy } from 'svelte';
    ! z' O4 {+ I2 Z
  3.   import { backButton, useSignal } from '@telegram-apps/sdk-svelte';1 I0 y4 u8 t) m0 T/ ], P, B. M

  4. 9 k9 H1 v+ j& j8 Q
  5.   const isVisible = useSignal(backButton.isVisible);
    , a" w% N" I" U7 l* z# w: @

  6. # f% d0 K9 I2 @3 w! F( f; L) J
  7.   $: console.log('The button is', isVisible.value ? 'visible' : 'invisible')
    " I( k* C" _9 {" g/ v

  8. - ~% |: \1 @' \$ p; C
  9.   onMount(() => {
    0 X9 F9 u1 p" w/ z: Q/ q
  10.     backButton.show();
    , `4 D0 N/ L6 O. }* f
  11.   });
    7 K" u; k9 s2 X, e
  12. 2 r5 l- W9 K7 p  ~7 K# T- {
  13.   onDestroy(() => {
    5 n' I7 |' G9 D: B% z" J
  14.     backButton.hide();  x+ }' n( z3 A3 {* P
  15.   });
    * N- y( X# [6 e" Z: H$ C
  16. </script>7 G1 X! s' x% ?. c* e& q2 g

  17. 6 z" P" y. [1 u+ M5 q3 `6 m
  18. <template></template>
复制代码

4 `/ K$ H/ d) W+ J& u  puseLaunchParams

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

  1. <script>7 Z+ V6 ?& }  j4 F# z
  2.   import { useLaunchParams } from '@telegram-apps/sdk-svelte';
    % O; b* l; q1 V, j$ V

  3. 8 {1 W1 c7 r. S
  4.   const lp = useLaunchParams();
    3 e( O: j# e3 G; g" ^: R2 l
  5. </script>+ M1 v! [0 q: W1 D) V1 y+ k! v
  6. ) E7 z+ ]. L" \, q; V
  7. <template>/ l6 Y: v+ c: \- [
  8.   <div>Start param: {{ lp.startParam }}</div>
    6 T+ I) G2 h3 P; P' E6 m& k, N
  9. </template>
复制代码

' J+ D7 x+ E! V- \
$ t! x  E2 b8 ^9 f0 Y& k1 W
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则