Hỗ trợ thủ công
LCC.assist cho phép tập lệnh trên thiết bị gửi yêu cầu hỗ trợ thủ công tới trung tâm điều khiển. Tập lệnh có thể đính kèm ảnh chụp màn hình và nội dung hướng dẫn, chặn để chờ người vận hành gửi kết quả rồi mới tiếp tục thực thi.
Loại yêu cầu
| Loại | API | Trường hợp phù hợp | Cách xử lý thông thường của script |
|---|---|---|---|
| Phản hồi văn bản | LCC.assist.ask_text() | Mã xác minh, mã SMS, mật khẩu, mã dùng một lần | Nhập result.text vào ô nhập hiện tại |
| Chọn tọa độ | LCC.assist.pick_point() | Cần người vận hành xác định vị trí cần chạm, chẳng hạn nút đồ họa hoặc nút trong hộp thoại lỗi | Gọi trực tiếp touch.tap(result.x, result.y) |
| Điều khiển từ xa thủ công | LCC.assist.request_control() | Các quy trình không ổn định như thanh trượt, CAPTCHA, đăng nhập, kiểm tra bảo mật hoặc hộp thoại quyền | Chờ điều khiển từ xa hoàn tất, sau đó chụp lại màn hình để tiếp tục nhận diện |
Nội dung hướng dẫn cho người vận hành phải cụ thể và có thể thực hiện ngay; không nên dùng mô tả mơ hồ như “thông tin bổ sung”. Nên viết rõ như “Hãy điều khiển từ xa để hoàn tất xác minh rồi nhấp Hoàn tất”, “Hãy nhập mã xác minh trong ảnh chụp màn hình” hoặc “Hãy chọn tâm nút xác nhận”.
Nguồn ảnh chụp màn hình
Yêu cầu hỗ trợ có thể kèm theo hình ảnh theo nhiều cách khác nhau:
screenshotLocalPath: Đường dẫn ảnh cục bộ trên thiết bị; SDK sẽ tải ảnh lênfiles/_temp/assist/lua-script/<udid>/<request-id>/...tại trung tâm điều khiển.screenshotPath: Khi hình ảnh đã nằm trong thư mục gốcfilestrên máy chủ, chỉ cần truyền đường dẫn tương đối.screenshotImage: XXTouchImageObject, SDK sẽ chuyển đổi nó thành data URL, không cần lưu trước vào tập tin.screenshotImageData: Dữ liệu nhị phân của hình ảnh dạng PNG/JPEG, SDK sẽ chuyển đổi nó thành data URL.input.imageSrc: Nếu tập lệnh đã có địa chỉ ảnh dạngdata:image/...,http(s)://...hoặc/api/..., có thể đặt địa chỉ đó tronginputđể chuyển nguyên trạng cho giao diện hiển thị.
input.imageSrc sẽ không bị SDK ghi đè. Chỉ khi không truyền input.imageSrc và cũng không truyền ảnh chụp màn hình theo đường dẫn, thì SDK mới chuyển đổi screenshotImage hoặc screenshotImageData thành input.imageSrc.
Vòng đời
Một yêu cầu bắt đầu ở trạng thái pending, chuyển sang active khi công cụ được mở tại trung tâm điều khiển và chuyển sang submitted sau khi kết quả được gửi. Khi người dùng hủy, tập lệnh chủ động hủy, hết thời gian chờ hoặc tác vụ hết hạn, yêu cầu sẽ chuyển sang cancelled / expired.
Ở phía script có hai cơ chế dọn dẹp:
- Khi
LCC.assist.request()hết thời gian chờ, yêu cầu hiện tại sẽ bị hủy và hàm trả vềnil, "timeout", task. - Khi script kết thúc,
XXTLanControl.luasẽ gọicancel_all()để hủy các yêu cầu chưa hoàn thành của script đó.
Khi máy chủ điều khiển trung tâm nhận được tín hiệu cho biết một script trên thiết bị đã ngừng hoạt động, nó cũng sẽ hủy các yêu cầu của thiết bị đó ở trạng thái source = "lua-script" và vẫn đang ở trạng thái pending / active; nó sẽ không hủy các yêu cầu của thiết bị khác, cũng không thay đổi các yêu cầu đã được gửi.
Dữ liệu tác vụ sử dụng kho tác vụ trong bộ nhớ hiện tại của trung tâm điều khiển; các tác vụ chưa hoàn tất sẽ không được giữ lại sau khi backend khởi động lại.
Nếu yêu cầu sử dụng input.imageSrc, screenshotImage hoặc screenshotImageData để truyền hình ảnh nội tuyến, sau khi nhiệm vụ chuyển sang trạng thái gửi, hủy hoặc hết hạn, máy chủ điều khiển trung tâm sẽ giải phóng nội dung hình ảnh nội tuyến, chỉ giữ lại trạng thái nhiệm vụ, kết quả và các thông tin cấu trúc khác.
Nếu phần mềm thoát bất thường rồi được mở lại, các tác vụ chưa hoàn tất sẽ không được khôi phục. Khi khởi động, phần mềm sẽ dọn ảnh chụp do yêu cầu hỗ trợ của tập lệnh tải lên files/_temp/assist/lua-script/; đồng thời tương thích với việc dọn các thư mục ảnh do phiên bản cũ tải lên files/assist/lua-script/ hoặc files/assist/<udid>/<request-id>/ nếu ID yêu cầu là UUID.
Danh sách API
- Tham số chung và đối tượng trả về
- Tạo yêu cầu hỗ trợ thủ công
LCC.assist.create() - Chờ kết quả hỗ trợ thủ công
LCC.assist.wait() - Tạo và chờ yêu cầu
LCC.assist.request() - Yêu cầu trả lời bằng văn bản
LCC.assist.ask_text() - Yêu cầu chọn tọa độ
LCC.assist.pick_point() - Yêu cầu điều khiển từ xa thủ công
LCC.assist.request_control() - Hủy yêu cầu cụ thể
LCC.assist.cancel() - Hủy yêu cầu script hiện tại
LCC.assist.cancel_all()