Hướng dẫn tạo Native Module trong React Native: Lấy thông tin pin điện thoại!
Lê Lân
0
Hướng Dẫn Tạo Native Module Trong React Native: Lấy Mức Pin Thiết Bị Với Kotlin và Swift
Mở Đầu
Bạn đã bao giờ thắc mắc cách các thư viện như react-native-camera hay react-native-device-info truy cập các tính năng gốc (native) trên thiết bị như thế nào chưa?
Trong bài viết này, bạn sẽ học cách tự tạo một native module trong React Native để lấy mức pin hiện tại của thiết bị. Chúng ta sẽ lần lượt phát triển module với Kotlin cho Android và Swift cho iOS. Bằng cách này, bạn sẽ hiểu rõ cách hoạt động của React Native Bridge — cầu nối giúp mã JavaScript giao tiếp trực tiếp với mã nền tảng gốc.
Dự án thực hành này không chỉ giúp bạn lấy thông tin pin mà còn trang bị kiến thức nền tảng để mở rộng truy cập các tính năng thiết bị khác bằng cách tận dụng tối đa sức mạnh của React Native: phát triển đa nền tảng kết hợp với quyền truy cập sâu vào chức năng hệ điều hành.
React Native Bridge tự động expose class BatteryStatus để bạn có thể gọi getBatteryLevel từ JS thông qua NativeModules.
🛠️ Mẹo Khắc Phục Sự Cố Thường Gặp
Lỗi "Native module cannot be found":
Android: Kiểm tra BatteryPackage đã được đăng ký trong MainApplication.kt chưa.
iOS: Đảm bảo RCT_EXTERN_MODULE và bridging header được tạo đúng cách.
Dọn sạch build cache:
Android: cd android && ./gradlew clean
React Native: npx react-native clean
Xác thực cấu hình Swift nếu build iOS bị lỗi.
🧠 Kết Luận
Tạo native module là cách tuyệt vời để tận dụng sức mạnh nền tảng gốc trong React Native. Bạn có thể:
🔓 Truy cập các tính năng cấp thấp như camera, Bluetooth, cảm biến...
🚀 Tăng hiệu năng bằng cách xử lý tác vụ nặng trên native
🔌 Tích hợp các SDK gốc (thanh toán, sức khỏe, media)
Qua dự án lấy mức pin, bạn đã học cách bridge JavaScript với code Kotlin và Swift thành công, đảm bảo phát triển đa nền tảng nhưng vẫn có thể tận dụng trọn vẹn sức mạnh các nền tảng riêng biệt.
Hãy bắt đầu tạo module native cho ứng dụng của bạn để mở rộng tính năng và nâng cao trải nghiệm người dùng!