https://github.com/dev-cetera/df_pwa_utils
Web utilities for progressive web applications (PWA). No-ops on non-web platforms. Works with WASM.
https://github.com/dev-cetera/df_pwa_utils
Last synced: 2 months ago
JSON representation
Web utilities for progressive web applications (PWA). No-ops on non-web platforms. Works with WASM.
- Host: GitHub
- URL: https://github.com/dev-cetera/df_pwa_utils
- Owner: dev-cetera
- License: mit
- Created: 2025-05-27T05:10:34.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-06-14T05:39:42.000Z (9 months ago)
- Last Synced: 2025-06-14T06:25:21.689Z (9 months ago)
- Language: Dart
- Homepage:
- Size: 27.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/dev-cetera)
[](https://pub.dev/packages/df_pwa_utils)
[](https://github.com/dev-cetera/df_pwa_utils/tree/v0.3.5)
[](https://www.buymeacoffee.com/dev_cetera)
[](https://github.com/sponsors/dev-cetera)
[](https://www.patreon.com/t0mb3rr)
[](https://discord.gg/gEQ8y2nfyX)
[](https://www.instagram.com/dev_cetera/)
[](https://raw.githubusercontent.com/dev-cetera/df_pwa_utils/main/LICENSE)
---
## Summary
Web utilities for progressive web applications (PWA). No-ops on non-web platforms. Works with WASM.
You can use this package to set the URL path strategy for your web application to use the standard URL path instead of the hash-based routing.
```dart
import 'package:df_web_utils/df_web_utils.dart';
setToUrlPathStrategy();
```
You can also use the `platformNavigator` to manage the browser history and listen for changes in the URL path.
```dart
import 'package:df_web_utils/df_web_utils.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
final path = platformNavigator.getCurrentPath(); // e.g. '/home'
platformNavigator.pushState('/welcome'); // push '/welcome'
platformNavigator.replaceState('/home'); // replace current state with '/home'
platformNavigator.addStateCallback((path) {
if (kDebugMode) {
print('Pop state: $path');
} // e.g. '/home'
});
```
## Getting Started
Add the package to your `pubspec.yaml:
```yaml
dependencies:
df_pwa_utils: ^0.1.0
```
You can also use the latest version from the Git repository:
```yaml
dependencies:
df_pwa_utils:
git:
url: https://github.com/dev-cetera/df_pwa_utils
ref: main
```
---
🔍 For more information, refer to the [API reference](https://pub.dev/documentation/df_pwa_utils/).
---
## 💬 Contributing and Discussions
This is an open-source project, and we warmly welcome contributions from everyone, regardless of experience level. Whether you're a seasoned developer or just starting out, contributing to this project is a fantastic way to learn, share your knowledge, and make a meaningful impact on the community.
### ☝️ Ways you can contribute
- **Find us on Discord:** Feel free to ask questions and engage with the community here: https://discord.gg/gEQ8y2nfyX.
- **Share your ideas:** Every perspective matters, and your ideas can spark innovation.
- **Help others:** Engage with other users by offering advice, solutions, or troubleshooting assistance.
- **Report bugs:** Help us identify and fix issues to make the project more robust.
- **Suggest improvements or new features:** Your ideas can help shape the future of the project.
- **Help clarify documentation:** Good documentation is key to accessibility. You can make it easier for others to get started by improving or expanding our documentation.
- **Write articles:** Share your knowledge by writing tutorials, guides, or blog posts about your experiences with the project. It's a great way to contribute and help others learn.
No matter how you choose to contribute, your involvement is greatly appreciated and valued!
### ☕ We drink a lot of coffee...
If you're enjoying this package and find it valuable, consider showing your appreciation with a small donation. Every bit helps in supporting future development. You can donate here: https://www.buymeacoffee.com/dev_cetera
## LICENSE
This project is released under the [MIT License](https://raw.githubusercontent.com/dev-cetera/df_pwa_utils/main/LICENSE). See [LICENSE](https://raw.githubusercontent.com/dev-cetera/df_pwa_utils/main/LICENSE) for more information.