Thông tin đa phương tiện, chẳng hạn như video trực tiếp, có thể giúp ích cho nhân viên nhận cuộc gọi khẩn cấp trong các tình huống quan trọng. Ví dụ:
- Sự cố liên quan đến ô tô: Video trực tiếp về hiện trường có thể giúp họ nắm được thông tin về các phương tiện liên quan.
- Hoả hoạn: Để nắm được mức độ của đám cháy và thiệt hại.
- Tình huống y tế khẩn cấp: Hướng dẫn người dùng thực hiện hô hấp nhân tạo để cứu người.
Giờ đây, ELS có thể chặn tin nhắn SMS do người nhận cuộc gọi gửi đi để yêu cầu video trực tiếp từ người dùng và cung cấp trải nghiệm video tích hợp. Vì tính năng này dành riêng cho các tình huống khẩn cấp, nên có lợi ích là quyền truy cập vào camera sẽ được cấp trước trong suốt thời gian xảy ra tình huống khẩn cấp.
Mục tiêu chính của chúng tôi khi ra mắt tính năng này là mang đến cho người dùng:
- trải nghiệm video trực tiếp mượt mà mà không cần các quyền phức tạp
- trải nghiệm nhất quán cho tất cả người dùng Android
Cách hoạt động
Hướng dẫn tích hợp
1. Cầu thủ bắt bóng
Sau khi cập nhật cấu hình ELS để bật video trực tiếp, bạn sẽ bắt đầu nhận được trường live_video_token trong thông báo ELS HTTPS khi điện thoại của người dùng hỗ trợ tính năng này. Tính năng này hỗ trợ các thiết bị Android 8 Oreo trở lên.
Mã thông báo là một mã nhận dạng được tạo trên thiết bị, thay đổi theo mỗi cuộc gọi hoặc tin nhắn văn bản và bao gồm:
- 6 ký tự ngẫu nhiên
- Chữ và số
- Chữ in hoa
2. Thư mời
Khi phát hiện mã thông báo, hãy truyền mã thông báo đó qua URL, chẳng hạn như một tham số URL, trong SMS có chứa đường liên kết đến luồng video của bạn, ví dụ: https://example.com/live?token=AFZ791. ELS sẽ phát hiện tin nhắn SMS đến trong cuộc gọi hoặc tin nhắn khẩn cấp và tìm mã thông báo video trực tiếp phù hợp, trong trường hợp này là: AFZ791.
Khi thiết bị phát hiện thấy một URL và mã thông báo hợp lệ, người dùng sẽ thấy một hộp thoại hỏi xem họ có muốn chấp nhận yêu cầu hay không. Nếu họ nhấp vào Accept, đường liên kết được gửi trong SMS yêu cầu của bạn sẽ mở ra trong một webview tích hợp.
3. Trải nghiệm video trực tiếp
Đường liên kết đến video trực tiếp của bạn cần hỗ trợ 2 trải nghiệm:
A. Trải nghiệm dựa trên trình duyệt web:
Ví dụ: điều này có thể bao gồm giao diện người dùng tuỳ chỉnh của riêng bạn:
- Nút
- Yêu cầu về vị trí
- Hộp thoại và sự đồng ý
B. Trải nghiệm tích hợp:
Để làm được điều này, bạn phải:
- Xoá tất cả các nút vì sự kiện chạm sẽ không hoạt động
- Khởi chạy trực tiếp vào luồng video mà không có hộp thoại
Phát hiện
Bạn có thể phát hiện chế độ tích hợp bằng cách quan sát tác nhân người dùng có chứa Live.
Ví dụ về tác nhân người dùng trong trải nghiệm trên trình duyệt di động: Mozilla/5.0 (Linux; Android
10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile
Safari/537.36
Ví dụ về user agent trong trải nghiệm webview tích hợp: Mozilla/5.0 (Linux;
Android 10; K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
Chrome/125.000 Mobile Safari/537.36 Live/25.23.10
Trong JavaScript, bạn có thể thực hiện việc này bằng cách sau:
if (navigator.userAgent.includes("Live")) {
<!-- Render integrated experience -->
} else {
<!-- Render your your own custom UI -->
}
Quyền
- Bạn phải cấp trước quyền truy cập camera cho video trực tiếp được tích hợp. Bạn nên yêu cầu các quyền này như bình thường thông qua JavaScript.
- Hệ thống sẽ tự động từ chối quyền truy cập vào vị trí, âm thanh và các quyền khác.
Khoảnh khắc níu chân
Để mang lại trải nghiệm tốt nhất cho người dùng, trong trải nghiệm tích hợp, bạn sẽ cung cấp các phần tử giao diện người dùng để lật camera và bật/tắt đèn pin.
| Tên hàm | Cầu thủ trả bóng | Mô tả | |
|---|---|---|---|
| Camera | switchCamera |
Promise<bool> |
Khi tải, hãy bắt đầu bằng camera sau (chế độ quay = môi trường) vì đây là chế độ hữu ích nhất trong các tình huống khẩn cấp. Chuyển đổi giữa các camera hiện có mỗi khi hàm được gọi. Trả về true khi chuyển đổi camera thành công. |
| Đèn pin | toggleFlashlight |
Promise<bool> |
Bật và tắt đèn pin mỗi khi hàm được gọi. Trả về true khi bật đèn pin thành công. |
| Đèn pin | isFlashlightAvailable |
bool |
Trả về true hoặc false tuỳ thuộc vào việc có đèn pin hay không đối với chế độ camera hiện tại. Sau khi gọi switchCamera, giả sử giá trị trả về phản ánh trạng thái còn hàng mới cập nhật ngay khi Promise của switchCamera phân giải. |
| Đèn pin | isFlashlightOn |
bool |
Trả về true khi đèn pin đang bật, nếu không thì trả về false. Sau khi gọi toggleFlashlight, giả sử giá trị trả về phản ánh trạng thái bật đèn pin đã cập nhật ngay khi Promise của toggleFlashlight phân giải |