Skip to content

视口

负责 Telegram Mini Apps viewport 的💠组件

安装

在使用该组件之前,有必要将其安装到正确配置的属性中。 为此,请使用 mount 方法。 它将更新 isMounted 信号属性。

ts
import { viewport } from '@telegram-apps/sdk';

viewport.mount();
viewport.isMounted(); // true
ts
import {
  mountViewport,
  isViewportMounted,
} from '@telegram-apps/sdk';

mountViewport();
isViewportMounted(); // true

要卸载,请使用 unmount 方法:

ts
viewport.unmount();
viewport.isMounted(); // false
ts
import {
  unmountViewport,
  isViewportMounted,
} from '@telegram-apps/sdk';

unmountViewport();
isViewportMounted(); // false

绑定 CSS 变量

要通过 CSS 变量公开 viewport 属性,请使用 bindCssVars 方法。 调用该方法后,isCssVarsBound 信号属性会被更新。

此方法可选择接受一个函数,该函数可将 widthheightstableHeight 的值转换为 CSS 变量名。 默认情况下,数值会通过 前缀 --tg-viewport- 转换为 kebab 大小写。

ts
viewport.bindCssVars();
// Creates CSS variables like:
// --tg-viewport-height: 675px
// --tg-viewport-width: 320px
// --tg-viewport-stable-height: 675px

viewport.bindCssVars(key => `--my-prefix-${key}`);
// Creates CSS variables like:
// --my-prefix-height: 675px
// --my-prefix-width: 320px
// --my-prefix-stableHeight: 675px

viewport.isCssVarsBound(); // true
ts
import {
  bindViewportCssVars,
  isViewportCssVarsBound,
} from '@telegram-apps/sdk';

bindViewportCssVars();
// Creates CSS variables like:
// --tg-viewport-height: 675px
// --tg-viewport-width: 320px
// --tg-viewport-stable-height: 675px

bindViewportCssVars(key => `--my-prefix-${key}`);
// Creates CSS variables like:
// --my-prefix-height: 675px
// --my-prefix-width: 320px
// --my-prefix-stableHeight: 675px

isViewportCssVarsBound(); // true

扩展

要扩展视口,请使用 expand 方法。

ts
viewport.expand();
ts
import { expandViewport } from '@telegram-apps/sdk';

expandViewport();

Released under the MIT License.