@retion-miniapp/sdk 0.8.0 → 0.8.1
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/CHANGELOG.md +13 -0
- package/README.md +56 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.8.1 — 2026-10-28
|
|
4
|
+
|
|
5
|
+
### Docs
|
|
6
|
+
- Phát hành README tiếng Việt đầy đủ cho biometric và speech-to-text: setup app chủ, API, response, event, lỗi và vòng đời phiên. Thêm các API mới vào bảng mục lục và liên kết gist hướng dẫn.
|
|
7
|
+
- Khuyên dùng Mini App React Native 0.8.1 để có bản sửa listener speech. Không thay đổi API so với Web SDK 0.8.0.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## 0.8.0 — 2026-10-28
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Speech-to-text qua bridge Mini App chung: bắt đầu/dừng, event tạm thời/cuối cùng/lỗi/kết thúc. Native tự xin quyền và quản lý phiên micro, huỷ khi mini app đóng/ẩn hoặc app xuống nền.
|
|
14
|
+
|
|
15
|
+
|
|
3
16
|
## 0.7.3 — 2026-10-28
|
|
4
17
|
|
|
5
18
|
### Changed
|
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
SDK cho web mini app chạy trong app Retion.
|
|
4
4
|
|
|
5
|
+
Tài liệu **Web SDK 0.8.1**, dùng với **Mini App React Native 0.8.1** để có đầy đủ Face ID / Touch ID và speech-to-text đã sửa listener native. App chủ tự cấu hình quyền và build native một lần; web chỉ gọi API và nhận kết quả/event.
|
|
6
|
+
|
|
7
|
+
[Hướng dẫn tích hợp app chủ](https://gist.github.com/vanqui123/e90b4efc40b8a85cc7a4b922ef0378b8) · [Face ID / Touch ID](#face-id--touch-id--android-biometrics) · [Speech-to-text](#nhận-dạng-giọng-nói-080)
|
|
8
|
+
|
|
5
9
|
```bash
|
|
6
10
|
npm i @retion-miniapp/sdk
|
|
7
11
|
```
|
|
@@ -19,6 +23,8 @@ npm i @retion-miniapp/sdk
|
|
|
19
23
|
| [`openScreen({ screen, params })`](#openscreen-screen-params-) | Mở 1 màn hình của app |
|
|
20
24
|
| [`openLink(url)`](#openlinkurl) | Mở link bằng hệ điều hành (deeplink app khác, tel:, mailto:, https) |
|
|
21
25
|
| [`haptic(type)`](#haptictype) | Rung phản hồi (bấm nút, thanh toán xong…) |
|
|
26
|
+
| [`getBiometricAvailability()` / `authenticateBiometric(req)`](#face-id--touch-id--android-biometrics) | Kiểm tra Face ID / Touch ID và trả nguyên kết quả xác thực native |
|
|
27
|
+
| [`startSpeech(options)` / `stopSpeech()` / `onSpeech(event, cb)`](#nhận-dạng-giọng-nói-080) | Bắt đầu/dừng nhận dạng và nhận văn bản tạm thời/cuối cùng |
|
|
22
28
|
|
|
23
29
|
**1 mini app = 1 trang, load 1 lần.** Mở mini app ở page / conversation khác, app **không nạp lại trang** mà gọi `onContextChange` — thiếu nó web sẽ hiện dữ liệu page cũ. Đổi tổ chức thì app nạp lại trang.
|
|
24
30
|
|
|
@@ -308,7 +314,7 @@ MIT
|
|
|
308
314
|
|
|
309
315
|
### Face ID / Touch ID / Android biometrics
|
|
310
316
|
|
|
311
|
-
|
|
317
|
+
Với Web SDK **0.8.1**, app chủ cài `@retion-miniapp/react-native@0.8.1` và hoàn tất cấu hình quyền/native. Package tự xử lý biometric, không cần truyền adapter. Xem [cấu hình app chủ](https://github.com/vanqui123/retion-miniapp-react-native/blob/main/docs/BIOMETRICS.md).
|
|
312
318
|
|
|
313
319
|
```ts
|
|
314
320
|
import { getBiometricAvailability, authenticateBiometric } from '@retion-miniapp/sdk';
|
|
@@ -327,3 +333,52 @@ giữ mã và thông báo do native cung cấp khi có. Lỗi bridge như `BUSY`
|
|
|
327
333
|
`NOT_SUPPORTED`, `NOT_IN_HOST`, `TIMEOUT` vẫn được reject.
|
|
328
334
|
`getBiometricAvailability()` giữ nguyên cả trường `error` của native nếu có.
|
|
329
335
|
API xác minh trên thiết bị, không trả dữ liệu sinh trắc học hoặc token đăng nhập backend.
|
|
336
|
+
|
|
337
|
+
### Nhận dạng giọng nói (0.8.0)
|
|
338
|
+
|
|
339
|
+
API speech có từ **0.8.0**. Khuyên dùng Web SDK **0.8.1** và Mini App React Native **0.8.1**, gồm bản sửa đăng ký listener trên đúng native module để nhận text và event kết thúc. App chủ cấu hình Expo Modules, quyền micro/nhận dạng và build native một lần. Không gắn handler speech hay gửi message theo kênh `chat_sdk`. Xem [hướng dẫn cài đặt và hoạt động đầy đủ](https://github.com/vanqui123/retion-miniapp-react-native/blob/main/docs/SPEECH.md).
|
|
340
|
+
|
|
341
|
+
```ts
|
|
342
|
+
import { startSpeech, stopSpeech, onSpeech } from '@retion-miniapp/sdk';
|
|
343
|
+
|
|
344
|
+
// Đăng ký một lần khi component được tạo, trước khi bắt đầu nghe.
|
|
345
|
+
const offPartial = onSpeech('speech.partial', result => console.log(result.text));
|
|
346
|
+
const offFinal = onSpeech('speech.final', result => console.log(result.text, result.results));
|
|
347
|
+
const offError = onSpeech('speech.error', error => console.error(error.code, error.message));
|
|
348
|
+
const offEnd = onSpeech('speech.end', () => console.log('Phiên nghe đã kết thúc'));
|
|
349
|
+
|
|
350
|
+
// Nút bắt đầu gọi hàm này. Promise không trả văn bản.
|
|
351
|
+
async function startListening() {
|
|
352
|
+
try { await startSpeech({ lang: 'vi-VN' }); }
|
|
353
|
+
catch (error) { console.error('Không bắt đầu được:', error); }
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
// Nút dừng: vẫn chờ kết quả cuối hoặc lỗi và event speech.end.
|
|
357
|
+
async function stopListening() {
|
|
358
|
+
try { await stopSpeech(); }
|
|
359
|
+
catch (error) { console.error('Không dừng được:', error); }
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
// Khi rời màn hình trong web: dừng nếu không còn cần nghe, rồi dọn listener.
|
|
363
|
+
// Nếu cần lưu câu cuối, giữ listener cho đến speech.end trước khi dọn.
|
|
364
|
+
async function dispose() {
|
|
365
|
+
try { await stopSpeech(); }
|
|
366
|
+
finally { offPartial(); offFinal(); offError(); offEnd(); }
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
| API / event | Kết quả |
|
|
371
|
+
| --- | --- |
|
|
372
|
+
| `startSpeech(options?)` | `Promise<void>` sau khi xin quyền và gửi lệnh bắt đầu; chờ tối đa 2 phút |
|
|
373
|
+
| `stopSpeech()` | `Promise<void>` khi gửi lệnh dừng; chờ phản hồi bridge tối đa 15 giây, không phải chờ câu cuối |
|
|
374
|
+
| `speech.partial` / `speech.final` | `{ text, isFinal, results, ... }`; giữ dữ liệu native và thêm `text` |
|
|
375
|
+
| `speech.error` | `{ code, error, message, ... }`; lỗi xảy ra trong phiên |
|
|
376
|
+
| `speech.end` | `undefined`; native kết thúc và host đã giải phóng phiên |
|
|
377
|
+
|
|
378
|
+
Mặc định: `lang: 'vi-VN'`, `continuous: true`, `interimResults: true`, `addsPunctuation: true`, `requiresOnDeviceRecognition: false`. Web có thể truyền các tuỳ chọn này vào `startSpeech`; tính năng nhận dạng tuỳ thuộc dịch vụ và ngôn ngữ trên thiết bị.
|
|
379
|
+
|
|
380
|
+
Chỉ một mini app được giữ phiên. Phiên đang bận trả `BUSY`; thiếu quyền trả `PERMISSION_DENIED`; tham số sai trả `INVALID_PARAMS`; mini app không còn hoạt động trả `CANCELLED`; thiếu native module trả `NOT_SUPPORTED`. Lỗi khởi động đi vào Promise; lỗi nhận dạng đi qua event. Host cũ có thể không hỗ trợ API. Trình duyệt ngoài host trả `NOT_IN_HOST`.
|
|
381
|
+
|
|
382
|
+
Dừng không đảm bảo luôn có `speech.final`: native có thể không nhận được lời nói hoặc báo lỗi rồi kết thúc. `speech.final` trong chế độ nghe liên tục cũng không có nghĩa phiên đã kết thúc. Chỉ dựa vào `speech.end` để biết phiên đã được giải phóng.
|
|
383
|
+
|
|
384
|
+
Đóng/ẩn mini app, reload WebView hoặc app xuống nền sẽ huỷ phiên. Huỷ listener web không tự tắt micro. Hết thời gian chờ web không tự huỷ lời gọi native hoặc đóng hộp xin quyền; nếu không còn muốn nghe, yêu cầu dừng. API speech không phụ thuộc cài đặt ngôn ngữ của Chat SDK.
|
package/dist/index.cjs
CHANGED
package/dist/index.js
CHANGED