Solid.js 软件包提供开发人员在开发微型 应用程序时可能会发现有用的实用程序。 [!提示] 由于本软件包提供了扩展 @telegram-apps/sdk 功能的实用程序函数 ,建议首先查看 SDK 软件包 文档。 ! f/ ?) h5 [# ]# U
安装在继续之前,假定您已经安装了 solid-js 软件包,因为它是 的同级依赖包 pnpm : - pnpm i @telegram-apps/sdk-solid
复制代码npm : - npm i @telegram-apps/sdk-solid
复制代码yarn : - yarn add @telegram-apps/sdk-solid
复制代码INFO 此软件包完全重新导出 @telegram-apps/sdk 软件包,因此 您无需单独安装。 使用方法下面是该软件包的一个简单使用示例: index.tsx : - import { render } from 'solid-js/web';7 _. I# Q4 W; ~2 d9 `
- import { init, backButton } from '@telegram-apps/sdk-solid';( t% W8 [1 z4 ^$ A
8 _7 g4 ^3 O: i5 P3 T- import { BackButton } from './BackButton.js';
' h, b# r. N4 `) r. I
+ f, I( a! d- G" R: k- // Initialize the package.$ O6 u8 ]. a, P" g2 X) K
# [; B6 _6 A6 X0 }9 Y+ x0 ~- 0 N7 l. f# `& r$ m2 b
-
) D. }+ `& K- j) ^9 y" a# N - + R( Z& x, q0 Q( Q7 X: T/ M: c
- backButton.mount();2 F& n) `2 x& `. k! v3 Z- d
- - m& k' F6 k% R1 _0 v/ L
- render(() =><BackButton/>, document.getElementById('root')!);
复制代码BackButton.ts - import { createEffect, onCleanup, onMount } from 'solid-js';8 G2 Y$ a% d; y/ [7 s& C
- import { backButton, useSignal } from '@telegram-apps/sdk-solid';$ Z H$ j4 `$ k' V9 h: Y8 w
8 Z& V+ H% E2 y: \ N" N- /**
* y" [1 {' X5 H( M6 g' Y; K' x - * 控制返回按钮可见性的组件。% \5 S, i# w1 i5 W( c5 Z
- */7 m* l" l, D% R3 H% I# A
- export function BackButton() {
# R* b: B4 c1 V% { - const isVisible = useSignal(backButton.isVisible);: J# d' v: ?- i
- & `* f4 x6 p4 h1 c
- createEffect(() => {
+ i! ^2 P% P' v& {6 {& D9 Q - console.log('The button is', isVisible() ?'visible' : 'invisible');
. I0 K0 d) R% _3 m7 h4 u - });
* ]9 r2 l$ T, O! ]% L
, h* U- ?: D! C5 M- onMount(() => {
6 u5 A" I5 v9 [9 R6 K5 {, M* E - backButton.show();+ [/ D+ O# K0 ]+ g( Q `' ]
- onCleanup(() => {
$ I+ N3 j5 [4 n% g$ d- C( E9 c - backButton.hide();( Q7 W( e) E8 q( d0 H. K' }
- });' z; }6 `+ E8 P* o- X& x
- });$ q9 p, e& s. N" J) P+ M
: `7 a8 p, R) z- U+ m$ v+ J0 U- return null;
# x9 q" d2 b- G2 U' o* Z! [1 b - }
复制代码 挂钩使用信号一个辅助工具,允许您在应用程序中使用我们的 [信号](.../telegram-apps-signals.md)。 返回一个 "Solid "信号,每次我们的信号发生变化时,该信号都会更新。 - import { createEffect, onCleanup, onMount } from 'solid-js';8 `. t- i0 F0 M( a- I8 R
- import { backButton, useSignal } from '@telegram-apps/sdk-solid';: j) V3 V9 S. p7 b
( d, k O" u m" T- function Component() {
% w2 q' t! g: I3 {5 ~2 O - const isVisible = useSignal(backButton.isVisible);5 Z. I+ d' b6 D
- * r6 t u- m+ d; r
- createEffect(() => {
9 Y, a! T+ U+ A: K7 [3 \ - console.log('The button is', isVisible() ? 'visible' : 'invisible'; }; onMount(() => { backButton.show(); onCleanup(() => { backButton.show().'visible' : 'invisible');- x, w* D' G8 \8 q6 v. ]9 |' ]. e$ A
- });
7 k0 D- Z6 z2 x/ L1 s - r L0 G0 r& f+ z; ] u( h2 k
- onMount(() => {7 e0 C& f2 _ _7 @/ O9 f
- backButton.show();) ^6 Q# E3 |2 a) K# |+ A2 Z T
- onCleanup(() => {; x Y) v# ?( A; t2 h# R! Y
- backButton.hide();
: @7 y: f# g3 C) U* P- |- T - });
- ?6 [ A. H \4 `5 A - });
; j/ }. a- M$ P" r2 m2 ^7 a- E
8 U- U6 K1 r7 H- return null;. s% L8 ~$ {. p- c& w
- }
复制代码 使用启动参数返回迷你应用程序启动参数的函数。 - import { useLaunchParams } from '@telegram-apps/sdk-solid';( \: Z/ Z, g# z" c4 O5 T
! T4 T' ?9 K0 n3 R; m- function Component() {
- E! `4 K0 [* V; M; N' f - const lp = useLaunchParams();
# T7 y3 t4 y4 p - return<div>Start param: {lp.startParam}</div>;9 r5 W0 g$ b* ~8 x! ^
- }
复制代码
- L- ~6 {4 Q/ A $ f% I, e0 k* }0 n6 s
|