Nhảy tới nội dung

openMediaPicker

Bắt đầu hỗ trợ ở phiên bản:

  • SDK: 2.18.11
Lưu ý

Cần xin cấp quyền tại trang Quản lý ứng dụng

Mở cửa sổ chọn media (camera, ảnh, file, video) từ thiết bị. Media sau khi chọn sẽ được tải lên server của bạn dưới dạng dữ liệu multipart/form-data, fieldname=file.

Parameters

Object object

PropertyTypeDefaultRequiredDescriptionMinimum Version
typestringtrueNhận các giá trị sau:
  • 'photo': Mở cửa sổ chọn ảnh
  • 'file': Mở cửa sổ chọn file
  • 'video': Mở của sổ chọn video
  • 'zcamera': Mở camera zalo
  • 'zcamera_photo': Mở camera zalo để chụp ảnh
  • 'zcamera_video': Mở camera zalo để quay phim
  • 'zcamera_scan': Mở camera zalo để chụp tài liệu
Các type zcamera, zcamera_photo, zcamera_video, zcamera_scan hỗ trợ từ phiên bản API 2.23.2
serverUploadUrlstringtrueĐường dẫn upload media. Xem ví dụ về server tại đây
maxItemSizenumberGiới hạn kích thước (byte) tối đa của media được phép chọn
maxSelectItemnumber1Giới hạn số lượng tối đa media được chọn
silentRequestbooleanfalseNhận các giá trị sau:
  • false: Hiện dialog xử lý các tác vụ ngầm như (render video, upload media,...) và có nút hủy tác vụ
  • true: không hiện dialog xử lý các tác vụ ngầm
media
editViewobjectHiển thị view chỉnh sửa ảnh
successfunctionCallback function khi gọi api thành công
failfunctionCallback function khi gọi api thất bại

Object editView

PropertyTypeDefaultRequiredDescriptionMinimum Version
enablebooleantruetrueHiển thị view chỉnh sửa ảnh
aspectRatiostring1:1Cắt ảnh theo tỉ lệ đã chỉ định. Tỉ lệ truyền vào theo format width:height: là phân số tối giản qui định tỉ lệ width/height

Return Values

Promise<Object res>

PropertyTypeDescriptionMinimum Version
datastringToàn bộ nội dung trả về của server upload media

Sample Code

Server

Server phải cung cấp một api dùng để upload media với method POST và trả về kết quả dạng JSON. Kết quả trả về phải chứa trường error với các giá trị:

  • 0: Tải lên thành công
  • Khác 0: Tải lên thất bại

Một ví dụ về kết quả trả về của API dùng để upload media:

  • Tải lên thành công:
{
"error": 0,
"message": "Success",
"data": {
"urls": [...]
}
}
  • Tải lên thất bại:
{
"error": -1,
"message": "Fail"
}

Tạo một server để upload media với 2 api:

  • POST /upload/media - Dùng để upload media
  • GET /files/:name - Dùng để lấy media theo name

Tham khảo code mẫu dưới đây:

Code demo fallback when rendering server side!

Client

import { openMediaPicker } from "zmp-sdk/apis";

openMediaPicker({
type: "photo",
serverUploadUrl: "https://<your-domain-api>/upload/media",
success: (res) => {
// xử lý khi gọi api thành công
const { data } = res;
const result = JSON.parse(data);
console.log(result);
},
fail: (error) => {
// xử lý khi gọi api thất bại
console.log(error);
}
});

Hoặc

import { openMediaPicker } from "zmp-sdk/apis";

const pickMedia = async () => {
try {
const { data } = await openMediaPicker({
type: "photo",
serverUploadUrl: "https://<your-domain-api>/upload/media"
});
const result = JSON.parse(data);
console.log(result);
} catch (error) {
// xử lý khi gọi api thất bại
console.log(error);
}
};

Errors

Bắt đầu hỗ trợ:

  • API phiên bản: 2.21.0
CodeMessageNote
-2003User cancel
-2004Unable to pick mediaHãy kiểm tra lại tình trạng mạng hoặc server upload