@apiteam/twa-bridge 8.0.13 → 9.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -32
- package/package.json +25 -22
- package/solid/index.d.ts +560 -220
- package/solid/index.js +1 -1
- package/solid/index.mjs +1 -1
- package/solid/package.json +15 -15
package/README.md
CHANGED
|
@@ -1,32 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
1
|
+
# @apiteam/twa-bridge
|
|
2
|
+
|
|
3
|
+
Минималистичный TypeScript-мост для [Telegram Mini Apps](https://core.telegram.org/bots/webapps). Он отправляет методы в клиент Telegram, проверяет поддержку API и предоставляет типизированные события в одном интерфейсе.
|
|
4
|
+
|
|
5
|
+
Полная справка по методам находится в [документации](https://docs.apiteam.ru) и в каталоге [`docs`](docs/).
|
|
6
|
+
|
|
7
|
+
## Установка
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @apiteam/twa-bridge
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Быстрый старт
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import {
|
|
17
|
+
bridgeReady,
|
|
18
|
+
bridgeShareToStory,
|
|
19
|
+
listener,
|
|
20
|
+
} from '@apiteam/twa-bridge'
|
|
21
|
+
|
|
22
|
+
bridgeReady()
|
|
23
|
+
|
|
24
|
+
listener.on('theme_changed', ({ theme_params }) => {
|
|
25
|
+
console.log(theme_params.bg_color)
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
bridgeShareToStory({
|
|
29
|
+
media_url: 'https://example.com/photo.jpg',
|
|
30
|
+
text: 'Моя история',
|
|
31
|
+
})
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Для каждого метода есть `support…`-функция, например `supportShareToStory()`. При неподдерживаемой версии Telegram bridge-методы возвращают `{ status: 'not_supported' }`.
|
|
35
|
+
|
|
36
|
+
## События
|
|
37
|
+
|
|
38
|
+
`listener` использует `EventEmitter` из `@minsize/utils` и экспортирует `on`, `once` и `off`. Имя события и его payload выводятся из типа `EventsData`.
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { listener } from '@apiteam/twa-bridge'
|
|
42
|
+
|
|
43
|
+
const onLocation = data => {
|
|
44
|
+
if (data.available) {
|
|
45
|
+
console.log(data.latitude, data.longitude)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
listener.on('location_requested', onLocation)
|
|
50
|
+
listener.off('location_requested', onLocation)
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
При инициализации bridge сохраняет существующий объект `window.Telegram`, поэтому `window.Telegram.WebApp` из официального SDK остаётся доступен. Bridge назначает обработчик только в `window.Telegram.WebView.receiveEvent` — не подключайте второй SDK, который записывает в этот же обработчик, без явного объединения обработчиков.
|
|
54
|
+
|
|
55
|
+
Подробнее: [Listener и события](docs/functions/listener.md).
|
|
56
|
+
|
|
57
|
+
## Методы
|
|
58
|
+
|
|
59
|
+
Высокоуровневые функции имеют префикс `bridge`: например, `bridgeRequestLocation`, `bridgeStartAccelerometer`, `bridgeDeviceStorage` и `bridgeRequestChat`. Для прямого вызова по имени Telegram-метода используйте `bridgeSend` и константы `Method`:
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
import { bridgeSend, Method } from '@apiteam/twa-bridge'
|
|
63
|
+
|
|
64
|
+
await bridgeSend(Method.RequestLocation)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
`bridgeSend` выбирает соответствующую bridge-функцию, если она есть, поэтому сохраняются проверка версии и обработка результата. Низкоуровневый `sender(eventType, eventData)` отправляет событие в Telegram без этих обёрток.
|
|
68
|
+
|
|
69
|
+
Новые API Telegram 7.10–9.6, включая геолокацию, датчики, device/secure storage, скрытие клавиатуры и запрос чата, описаны в разделе [Новые платформенные API](docs/functions/platformApis.md).
|
|
70
|
+
|
|
71
|
+
## Поддержка
|
|
72
|
+
|
|
73
|
+
Если есть ошибка или нужен метод, [создайте issue](https://github.com/apiteamru/twa-bridge/issues).
|
package/package.json
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@apiteam/twa-bridge",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Telegram bridge",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"types": "index.ts",
|
|
7
|
-
"author": {
|
|
8
|
-
"name": "Egor Kytyukov",
|
|
9
|
-
"url": "https://vk.com/xuserz"
|
|
10
|
-
},
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/APITEAMRU/twa-bridge.git"
|
|
14
|
-
},
|
|
15
|
-
"contributors": [],
|
|
16
|
-
"keywords": [
|
|
17
|
-
"twa-sdk",
|
|
18
|
-
"telegram sdk",
|
|
19
|
-
"telegram",
|
|
20
|
-
"tg",
|
|
21
|
-
"telegram module"
|
|
22
|
-
]
|
|
1
|
+
{
|
|
2
|
+
"name": "@apiteam/twa-bridge",
|
|
3
|
+
"version": "9.6.0",
|
|
4
|
+
"description": "Telegram bridge",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"types": "index.ts",
|
|
7
|
+
"author": {
|
|
8
|
+
"name": "Egor Kytyukov",
|
|
9
|
+
"url": "https://vk.com/xuserz"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/APITEAMRU/twa-bridge.git"
|
|
14
|
+
},
|
|
15
|
+
"contributors": [],
|
|
16
|
+
"keywords": [
|
|
17
|
+
"twa-sdk",
|
|
18
|
+
"telegram sdk",
|
|
19
|
+
"telegram",
|
|
20
|
+
"tg",
|
|
21
|
+
"telegram module"
|
|
22
|
+
],
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@minsize/utils": "^1.0.0"
|
|
25
|
+
}
|
|
23
26
|
}
|