You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
4.3 KiB
225 lines
4.3 KiB
# Camera Platform-Specific Implementation
|
|
|
|
> **Agent role**:
|
|
Reference this file for platform-specific camera implementation details.
|
|
|
|
## Web Platform
|
|
|
|
### Implementation Details
|
|
|
|
- Uses `getUserMedia` API for camera access
|
|
|
|
- Implements fallback to file input if camera unavailable
|
|
|
|
- Handles browser compatibility issues
|
|
|
|
- Requires HTTPS for camera access
|
|
|
|
### Browser Support
|
|
|
|
- Chrome: Full support
|
|
|
|
- Firefox: Full support
|
|
|
|
- Safari: Limited support
|
|
|
|
- Edge: Full support
|
|
|
|
### Fallback Mechanisms
|
|
|
|
1. Camera access via getUserMedia
|
|
|
|
2. File input for image upload
|
|
|
|
3. Drag and drop support
|
|
|
|
4. Clipboard paste support
|
|
|
|
## Mobile Platform (Capacitor)
|
|
|
|
### iOS Implementation
|
|
|
|
- Uses `@capacitor-mlkit/barcode-scanning`
|
|
|
|
- Implements proper permission handling
|
|
|
|
- Supports both front and back cameras
|
|
|
|
- Handles camera switching
|
|
|
|
### Android Implementation
|
|
|
|
- Uses `@capacitor-mlkit/barcode-scanning`
|
|
|
|
- Implements proper permission handling
|
|
|
|
- Supports both front and back cameras
|
|
|
|
- Handles camera switching
|
|
|
|
### Permission Handling
|
|
|
|
- Camera permissions requested at runtime
|
|
|
|
- Permission state tracked and cached
|
|
|
|
- Graceful handling of denied permissions
|
|
|
|
- Clear user guidance for enabling permissions
|
|
|
|
## Desktop Platform (Electron)
|
|
|
|
### Current Status
|
|
|
|
- Camera implementation pending
|
|
|
|
- Will use platform-specific APIs
|
|
|
|
- Requires proper permission handling
|
|
|
|
- Will support both built-in and external cameras
|
|
|
|
### Planned Implementation
|
|
|
|
- Native camera access via Electron
|
|
|
|
- Platform-specific camera APIs
|
|
|
|
- Proper permission handling
|
|
|
|
- Camera switching support
|
|
|
|
## Platform Detection
|
|
|
|
### Implementation
|
|
|
|
- Uses `PlatformServiceFactory` for platform detection
|
|
|
|
- Implements platform-specific camera services
|
|
|
|
- Handles platform-specific error conditions
|
|
|
|
- Provides platform-specific user guidance
|
|
|
|
### Service Selection
|
|
|
|
- Web: `WebPlatformService`
|
|
|
|
- Mobile: `CapacitorPlatformService`
|
|
|
|
- Desktop: `ElectronPlatformService`
|
|
|
|
## Cross-Platform Compatibility
|
|
|
|
### Common Interface
|
|
|
|
- Unified camera service interface
|
|
|
|
- Platform-specific implementations
|
|
|
|
- Consistent error handling
|
|
|
|
- Unified user experience
|
|
|
|
### Feature Parity
|
|
|
|
- Core camera functionality across platforms
|
|
|
|
- Platform-specific optimizations
|
|
|
|
- Consistent user interface
|
|
|
|
- Unified error messages
|
|
|
|
## Platform-Specific Features
|
|
|
|
### Web
|
|
|
|
- Browser-based camera access
|
|
|
|
- File upload fallback
|
|
|
|
- Drag and drop support
|
|
|
|
- Clipboard paste support
|
|
|
|
### Mobile
|
|
|
|
- Native camera access
|
|
|
|
- Barcode scanning
|
|
|
|
- Photo capture
|
|
|
|
- Camera switching
|
|
|
|
### Desktop
|
|
|
|
- Native camera access (planned)
|
|
|
|
- External camera support (planned)
|
|
|
|
- Advanced camera controls (planned)
|
|
|
|
## Testing Strategy
|
|
|
|
### Platform Coverage
|
|
|
|
- Web: Multiple browsers
|
|
|
|
- Mobile: iOS and Android devices
|
|
|
|
- Desktop: Windows, macOS, Linux
|
|
|
|
### Test Scenarios
|
|
|
|
- Permission handling
|
|
|
|
- Camera access
|
|
|
|
- Error conditions
|
|
|
|
- Platform compatibility
|
|
|
|
- Performance metrics
|
|
|
|
---
|
|
|
|
**See also**:
|
|
|
|
- `.cursor/rules/features/camera-implementation.mdc` for
|
|
|
|
core implementation overview
|
|
|
|
- `.cursor/rules/features/camera_technical.mdc` for
|
|
|
|
technical implementation details
|
|
|
|
**Status**: Active platform-specific implementation guide
|
|
**Priority**: Medium
|
|
**Estimated Effort**: Ongoing reference
|
|
**Dependencies**: camera-implementation.mdc
|
|
**Stakeholders**: Development team, Platform team
|
|
|
|
## Model Implementation Checklist
|
|
|
|
### Before Camera Platform Implementation
|
|
|
|
- [ ] **Platform Analysis**: Identify target platforms and their camera capabilities
|
|
- [ ] **Feature Planning**: Plan platform-specific camera features
|
|
- [ ] **Integration Planning**: Plan integration with existing camera systems
|
|
- [ ] **Testing Strategy**: Plan testing across all target platforms
|
|
|
|
### During Camera Platform Implementation
|
|
|
|
- [ ] **Platform Services**: Implement platform-specific camera functionality
|
|
- [ ] **Feature Development**: Implement planned camera features for each platform
|
|
- [ ] **Integration**: Integrate with existing camera infrastructure
|
|
- [ ] **Performance Optimization**: Optimize camera performance for each platform
|
|
|
|
### After Camera Platform Implementation
|
|
|
|
- [ ] **Cross-Platform Testing**: Test camera functionality across all platforms
|
|
- [ ] **Feature Validation**: Verify all planned features work correctly
|
|
- [ ] **Performance Testing**: Ensure camera performance meets requirements
|
|
- [ ] **Documentation Update**: Update platform-specific camera documentation
|
|
|