registerWithImage
Kích hoạt screenguard với một chế độ xem hình ảnh tùy chỉnh và màu nền.
Sử dụng ImageView với SDWebImage trên iOS và Glide trên Android để tải nhanh hơn và lưu bộ nhớ đệm.
Yêu cầu v2.0.0+
Bạn phải gọi initSettings() trước khi sử dụng hàm này.
Tham số
Nhận một đối tượng JS với các tham số sau:
| Tên | Bắt buộc | Kiểu | Mặc định | Mô tả |
|---|---|---|---|---|
| source | BẮT BUỘC | Object | Nguồn của hình ảnh. Có thể là URI mạng hoặc asset cục bộ. Hỗ trợ: jpg, jpeg, png, gif, bmp, webp, svg. Cách dùng: source: { uri: 'https://...' } hoặc source: require('./image.png') | |
| width | BẮT BUỘC | number | Chiều rộng của hình ảnh | |
| height | BẮT BUỘC | number | Chiều cao của hình ảnh | |
| defaultSource | Không | Object | Hình ảnh dự phòng nếu source không tải được. Cách dùng: defaultSource: require('./fallback.png') | |
| backgroundColor | Không | string | '#000000' | Màu nền phía sau hình ảnh |
| alignment | Không | number | 4 (center) | Vị trí của hình ảnh (0-8). Xem giá trị căn lề |
| top | Không | number | Vị trí top tùy chỉnh | |
| left | Không | number | Vị trí left tùy chỉnh | |
| bottom | Không | number | Vị trí bottom tùy chỉnh | |
| right | Không | number | Vị trí right tùy chỉnh | |
⚠️ Đã gỡ bỏ trong v2.0.0 - Sử dụng initSettings() thay thế |
Cập nhật v2.0.0: Trong v1.x,
timeAfterResumeđược truyền trực tiếp vàoregisterWithImage(). Bắt đầu từ v2.0.0, hãy thiết lập nó tronginitSettings().
alignment
| Giá trị | Vị trí |
|---|---|
| 0 | topLeft |
| 1 | topCenter |
| 2 | topRight |
| 3 | centerLeft |
| 4 | center (mặc định) |
| 5 | centerRight |
| 6 | bottomLeft |
| 7 | bottomCenter |
| 8 | bottomRight |
Lưu ý
- Ném ngoại lệ khi alignment không nằm trong khoảng 0-8 hoặc là NaN.
- Không thể kết hợp alignment với các tham số vị trí (top, left, bottom, right) - alignment sẽ được kiểm tra trước.
- Đặt alignment thành null nếu bạn muốn sử dụng các tham số vị trí tùy chỉnh.
Code mẫu
Sử dụng hình ảnh mạng:
import ScreenGuardModule from 'react-native-screenguard';
// Khởi tạo trước (bắt buộc trong v2.0.0+)
await ScreenGuardModule.initSettings({
displayScreenGuardOverlay: true,
timeAfterResume: 2000,
});
// Với hình ảnh mạng và hình ảnh dự phòng
await ScreenGuardModule.registerWithImage({
height: 150,
width: 200,
source: {
uri: 'https://example.com/image.gif',
},
defaultSource: require('./images/fallback.png'),
backgroundColor: '#1a1a2e',
alignment: 4, // center
});
Sử dụng hình ảnh cục bộ:
await ScreenGuardModule.registerWithImage({
height: 150,
width: 200,
source: require('./images/logo.png'),
backgroundColor: '#1a1a2e',
});
Sử dụng vị trí tùy chỉnh:
await ScreenGuardModule.registerWithImage({
height: 150,
width: 200,
source: require('./images/logo.png'),
backgroundColor: '#1a1a2e',
alignment: null, // Phải để null để dùng vị trí tùy chỉnh
top: 50,
left: 50,
});
Lưu ý Android
Trên Android, nếu displayScreenguardOverlayAndroid được đặt thành false trong initSettings(), việc gọi registerWithImage() sẽ tự động chuyển sang registerWithoutEffect().
Demo
iOS
Android