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

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

回答

收藏

Telegram小程序 指南 | 获取应用程序链接

开源社区 开源社区 11855 人阅读 | 0 人回复 | 2025-02-19

本帖最后由 riyad 于 2025-2-21 19:28 编辑 ( c: W$ P3 O/ ~; J
0 v. `: m8 M2 E4 d4 ?* N$ \' h
简而言之,所有迷你应用程序都是典型的网络应用,每个应用程序都需要独立的 URL 来获取和展示内容。Telegram 不为开发者的应用提供存储空间,因此开发者需要为自己的应用创建存储空间并获取 URL。
$ y4 ^8 m2 `$ V0 H
Telegram 只接受具有有效 SSL 证书并使用 HTTPS 协议的链接。与生产环境不同,测试环境允许直接使用 IP 地址。
9 r2 q2 r: ~% D/ O: n
尽管我们可以使用测试环境来开发应用程序,但环境 往往无法显示出良好的性能。 如果在 测试环境中遇到低性能问题,请考虑切换到生产环境。
' z7 r* `" g' U% Y& ~! @
导言
0 D) \) A7 b1 G6 }! P2 C& \5 W在深入了解本指南之前,首先需要了解为什么我们需要一些链接。通常情况下,我们需要应用链接来实现以下目的之一:
用于开发:这些链接是临时的,仅用于通过开发服务器展示应用程序。它们还可以用来与其他用户分享,展示当前的进度。9 ^" a9 ~1 H: }
用于生产:这些链接用于在生产环境中访问应用程序,通常是供普通用户使用的。
本指南将涵盖这两种情况。在 React.js 的模板中,您可以找到实际的链接生成和使用方法。
接下来的章节将使用 Vite作为应用程序的基本打包工具。
* Q/ k0 v7 r* ?1 a3 C1 C
关于开发
/ @6 m6 p/ ]4 K# J
应用程序的开发过程被认为是一个持续不断的过程。长期运行的应用程序总是需要维护,为此,应该通过降低准入门槛和减少由此产生的认知负荷来优化这一过程。
开发链接用于查看应用程序当前的开发状态。这些链接可以分为两类:本地链接和远程链接。让我们来仔细看看。
2 }' N! l% L/ P) i& Q8 s4 l- o% |4 D4 H

WARNING

开发链接不应在生产中使用。 生产链接不应是动态的 ,必须引用提供迷你应用程序内容的服务器。

在本地环境
$ n+ o0 i) F% z: t
用于开发的本地链接是指仅对当前设备可用的链接。
流行的打包工具(如 Vite)提供了运行本地服务器的功能,用于开发。因此,您将获得一个可以在 BotFather 中使用或直接在浏览器中打开的 IP 地址。

' B. L) N- p7 e+ _
以下是运行开发服务器并返回开发链接的基本 Vite 配置。

3 U! Q9 }* S. y0 @" i# c. K
  1. import { defineConfig } from 'vite';- @9 S& q* y; V$ Q  t8 s* v7 |6 \( o
  2. + f& _1 b+ R  o; W+ |7 ^
  3. export default defineConfig();</font>
复制代码
$ p- [; C1 I) ^9 q  z

你会在控制台中看到一条信息:

  1. VITE ready in 112 ms% b. S8 z8 H8 @" ?  i- M
  2. - Q: ?- L2 w, |1 `0 ?8 p5 S
  3. ➜  Local:   http://localhost:5173
    * u. d& ?" @/ X. t! f" c( ~) C
  4. ➜  press h + enter to show help</font>
复制代码
现在,您可以在浏览器中打开本地链接 (http://localhost:5173) 来查看应用程序。
您可能已经注意到,该链接不符合 BotFather 的要求,因为它必须使用 HTTPS 协议。接下来,我们来获取 HTTPS 链接。

4 t; @5 Z, }2 i
Vite 插件[color=var(--vp-c-brand-1)]

Vite 的生态系统提供了 @vitejs/plugin-basic-ssl 插件。 允许在指定域上使用自签名 SSL 证书启动应用程序。

下面是一个基本例子:

  1. import { defineConfig } from 'vite';
    / F% x5 v1 ^. K9 e7 _6 _$ b
  2. import basicSsl from '@vitejs/plugin-basic-ssl';" h" {+ o1 ^- D1 N% \4 a
  3. , v$ m; F& z4 J5 A0 |! w
  4. export default defineConfig({4 ?7 \/ C4 C3 T1 l* h: c
  5.     plugins: [
    # k3 M2 c( b0 e
  6.     basicSsl(),$ n; p/ w1 w/ u: A
  7.   ],! F5 @. F" p% N; X% Q& ]& z
  8. });</font>
复制代码

您可能会发现还有一些其他有用的选项。 要了解更多相关信息,请访问 插件的 文档

启动开发服务器后,您会看到类似的信息:

  1. VITE ready in 275 ms- A) q. V& q( z% g

  2. * ]/ V3 u1 `1 c" Z4 V
  3. ➜  Local:   https://localhost:5173
    & L6 _1 ]2 H; T& x$ |
  4. ➜  press h + enter to show help</font>
复制代码

本地链接 (https://localhost:5173) 指向本地开发服务器。在浏览器、Telegram for macOS、Telegram Desktop 或 Telegram Web A/K 中打开此链接时,会出现一条与不信任证书相关的警告消息。

只需将此作为例外,然后继续申请。

mkcert
' K3 M# E! {/ E& F" r
mkcert 是一个允许开发人员生成 SSL 证书及相关私钥的工具。它还会创建一个证书颁发机构,使本地设备信任生成的证书。以下是安装指南

比方说,您想创建一个只有您的设备知道的自定义域,仅用于开发目的。 让它类似于 tma.internal。 为了让当前设备 知道哪个 IP 与该域相关联,我们应该修改 hosts文件,并将 tma.internal 映射到 127.0.0.1。

然后,运行指定该域的 mkcert 工具,就会收到两个文件:SSL 证书和私钥。 这两个文件都应在 Vite 配置中指定。

下面是使用 mkcert 生成的实体配置 Vite 开发服务器的示例:

  1. import { defineConfig } from 'vite';) o7 S0 \: t% j2 X  n# ?' `
  2. import { resolve } from 'node:path';
    ( O8 F! Z" o8 _3 O
  3. import { readFileSync } from 'node:fs';. q, ~* ?- _: c2 f6 C+ X
  4. 0 o$ {% H+ b2 h% |2 m- k* p  L
  5. export default defineConfig({1 D# z& _  A- ~3 [6 R: e
  6.    server: {9 }: B' }- }7 Q! _5 j0 W# Z2 |: _
  7.     host: 'tma.internal',& J2 \2 _6 v& J2 u; f! o+ X
  8.     https: {5 N- q/ W& k, C# L  i8 G
  9.     cert: readFileSync(resolve('tma.internal.pem')),
    / Y% d% i* ]' H3 S5 i" E: N! j
  10.     key: readFileSync(resolve('tma.internal-key.pem')),! {& D' e6 \/ \# F' z
  11.    },
    ; g0 v3 ^+ p2 y3 e6 _% y
  12.   },- S9 N0 l' e" p
  13. });</font>
复制代码

网络

有时,开发人员需要在不同设备上打开应用程序。我们可以通过在 Vite 中使用 host 选项来实现这一功能。

  1. import { defineConfig } from 'vite';
    4 T8 k" D* P' a# E

  2. 4 A+ `7 @+ V; z6 H. U
  3. export default defineConfig({
    ( v: x" x& l; d
  4.   server: {
    & k# D3 N! i8 V7 N* X( c& _! G7 [9 \
  5.    host: true,
    1 P0 n+ ^, g' n- @' I
  6.   },
    % d, I, `7 S* n  a' ]
  7. });</font>
复制代码

或者,我们可以使用以下命令:vite --host.

启动开发服务器后,您会在控制台中看到类似的信息:

  1. VITE v5.2.12  ready in 15 ms
    7 P7 b4 i4 m! g/ d: T# p

  2.   k5 g# ], O/ u
  3.   ➜  Local:   http://localhost:5173
    $ U6 k* {& z" B
  4.   ➜  Network: http://172.20.10.8:5173
    4 h; C  M3 s$ z' B8 ^
  5.   ➜  press h + enter to show help</font>
复制代码

现在,你可以在同一网络的设备上访问 "网络 "链接 (http://172.20.10.8:5173)。

要获取 HTTPS 链接,请参阅本指南的前几节。


: z$ ^2 G$ o; B% \- r: M9 O8 J* x* E/ r$ j" x! |0 ^
用于生产

获得生产链接也并非难事。 为此,您可以使用流行的免费 静态服务:


. h+ y, K* _% `7 r" Q( j1 Z  ], j  v) F' Z2 Q4 W- P
  w; N8 U+ w" I  J  M

, J" A$ ?* i* T2 L% }) r5 ?5 V7 R, |3 P# E) p# B8 U

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则