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
Property | Type | Default | Required | Description | Minimum Version |
---|---|---|---|---|---|
type | string | true | Nhận các giá trị sau:
| Các type zcamera , zcamera_photo , zcamera_video , zcamera_scan hỗ trợ từ phiên bản API 2.23.2 | |
serverUploadUrl | string | true | Đường dẫn upload media. Xem ví dụ về server tại đây | ||
maxItemSize | number | Giới hạn kích thước (byte) tối đa của media được phép chọn | |||
maxSelectItem | number | 1 | Giới hạn số lượng tối đa media được chọn | ||
silentRequest | boolean | false | Nhận các giá trị sau:
| ||
editView | object | Hiển thị view chỉnh sửa ảnh | |||
success | function | Callback function khi gọi api thành công | |||
fail | function | Callback function khi gọi api thất bại |
Object editView
Property | Type | Default | Required | Description | Minimum Version |
---|---|---|---|---|---|
enable | boolean | true | true | Hiển thị view chỉnh sửa ảnh | |
aspectRatio | string | 1:1 | Cắ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>
Property | Type | Description | Minimum Version |
---|---|---|---|
data | string | Toà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 mediaGET
/files/:name - Dùng để lấy media theoname
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
Code | Message | Note |
---|---|---|
-2003 | User cancel | |
-2004 | Unable to pick media | Hãy kiểm tra lại tình trạng mạng hoặc server upload |