Chuyển tới nội dung chính

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ạiAPITrường hợp phù hợpCách xử lý thông thường của script
Phản hồi văn bảnLCC.assist.ask_text()Mã xác minh, mã SMS, mật khẩu, mã dùng một lầnNhậ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ỗiGọi trực tiếp touch.tap(result.x, result.y)
Điều khiển từ xa thủ côngLCC.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ềnChờ đ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ên files/_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ốc files trên máy chủ, chỉ cần truyền đường dẫn tương đối.
  • screenshotImage: XXTouch ImageObject, 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ạng data:image/..., http(s)://... hoặc /api/..., có thể đặt địa chỉ đó trong input để 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.lua sẽ gọi cancel_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​