deeplink_x 0.1.1
deeplink_x: ^0.1.1 copied to clipboard
Lightweight Flutter plugin for type-safe external deeplink launching with built-in smart fallback feature.
DeeplinkX #
A lightweight Flutter plugin for type-safe handling of external deeplinks with built-in support for popular apps. Features smart fallback to app stores and web URLs across all major platforms.
Naming Note: 'X' in DeeplinkX stands for external.
Features #
- Type-safe API for external deeplinks
- Multi-platform support
- Smart fallback system
Usage #
import 'package:deeplink_x/deeplink_x.dart';
void main() {
final deeplinkX = DeeplinkX();
// Open Instagram app with store fallback
deeplinkX.launchAction(Instagram.open(fallBackToStore: true));
// Open Telegram profile
deeplinkX.launchAction(Telegram.openProfile('username'));
// Open iOS App Store app
deeplinkX.launchAction(IOSAppStore.open());
}
Supported Apps And Actions #
Category | App | Supported Actions |
---|---|---|
Stores | iOS App Store | • Open app • Open app page • Open review page • Open iMessage extension |
Stores | Mac App Store | • Open app • Open app page • Open review page |
Stores | Microsoft Store | • Open app • Open app page • Open review page |
Stores | Google Play Store | • Open app • Open app page • Open review page |
Social Apps | Telegram | • Open app • Open profile by username/phone • Send message |
Social Apps | • Open app • Open profile by username |
Documentation #
Detailed documentation available in doc/apps:
- iOS App Store
- Mac App Store
- Microsoft Store
- Play Store
- Telegram
URL Scheme Handling #
DeeplinkX uses a three-tier approach for maximum compatibility:
- Native App Deep Links: Direct app launch when installed
- Store Fallback: Redirects to app stores when apps aren't installed (with
fallBackToStore: true
) - Web Fallback: Redirects to web URLs when neither app nor store is available
Example:
// Enable store fallback
await deeplinkX.launchAction(Instagram.open(fallBackToStore: true));
For URL schemes and web fallbacks, see each app's documentation.
Platform-Specific Configuration #
See respective app documentation for platform-specific configuration.
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
License #
This project is licensed under the MIT License - see the LICENSE file for details.
Issues and Feature Requests #
Have a bug or feature request? Please open a new issue after checking existing ones.