Expand description
Progressive Web App capabilities for OxiGDAL.
This crate provides comprehensive PWA functionality including:
- Service worker integration
- Offline caching strategies
- Background sync
- Push notifications
- Web app manifest generation
- PWA lifecycle management
- Geospatial data caching optimizations
§Examples
§Basic Service Worker Registration
use oxigdal_pwa::service_worker::ServiceWorkerRegistry;
let registry = ServiceWorkerRegistry::with_script_url("/sw.js")
.with_scope("/app");
let registration = registry.register().await?;§Caching Strategies
use oxigdal_pwa::cache::strategies::{CacheStrategy, StrategyType};
// Create a cache-first strategy for static assets
let strategy = CacheStrategy::cache_first("static-assets");
// Or network-first for API calls
let api_strategy = CacheStrategy::network_first("api-cache");§Geospatial Tile Caching
use oxigdal_pwa::cache::geospatial::{GeospatialCache, BoundingBox};
let cache = GeospatialCache::with_defaults();
// Cache tiles for an area
let bbox = BoundingBox::new(-180.0, -85.0, 180.0, 85.0)?;
let tiles = cache.prefetch_tiles(&bbox, 0..5, "https://tiles.example.com").await?;§Push Notifications
use oxigdal_pwa::notifications::{NotificationManager, NotificationConfig};
let manager = NotificationManager::new();
// Request permission
let permission = NotificationManager::request_permission().await?;
if permission.is_granted() {
let config = NotificationConfig::new("New Data Available")
.with_body("Your geospatial data has been updated")
.with_icon("/icon.png");
manager.show(&config).await?;
}§Web App Manifest
use oxigdal_pwa::manifest::{ManifestBuilder, DisplayMode};
let manifest = ManifestBuilder::geospatial("GeoApp", "Geo")
.description("A powerful geospatial PWA")
.colors("#ffffff", "#007bff")
.add_standard_icons("/icons")
.build();
let json = manifest.to_json()?;§Features
default: Basic PWA functionality with console error hooksnotifications: Push notification supportbackground-sync: Background synchronizationgeospatial-cache: Geospatial-specific caching optimizations
Re-exports§
pub use error::PwaError;pub use error::Result;pub use cache::CacheManager;pub use cache::CacheStorageManager;pub use cache::geospatial::BoundingBox;pub use cache::geospatial::GeospatialCache;pub use cache::geospatial::TileCoord;pub use cache::strategies::CacheStrategy;pub use cache::strategies::StrategyType;pub use lifecycle::DisplayModeDetection;pub use lifecycle::InstallPrompt;pub use lifecycle::InstallState;pub use lifecycle::PwaLifecycle;pub use lifecycle::UpdateManager;pub use manifest::AppIcon;pub use manifest::DisplayMode;pub use manifest::ManifestBuilder;pub use manifest::Orientation;pub use manifest::Screenshot;pub use manifest::WebAppManifest;pub use notifications::NotificationAction;pub use notifications::NotificationConfig;pub use notifications::NotificationManager;pub use notifications::Permission;pub use notifications::PushNotificationManager;pub use service_worker::ServiceWorkerEvents;pub use service_worker::ServiceWorkerMessaging;pub use service_worker::ServiceWorkerRegistry;pub use service_worker::ServiceWorkerScope;pub use service_worker::get_registration;pub use service_worker::get_service_worker_container;pub use service_worker::is_service_worker_supported;pub use service_worker::register_service_worker;pub use sync::BackgroundSync;pub use sync::QueuedOperation;pub use sync::SyncCoordinator;pub use sync::SyncOptions;pub use sync::SyncQueue;
Modules§
- cache
- Offline caching strategies for PWA.
- error
- Error types for PWA operations.
- lifecycle
- PWA lifecycle management and install prompts.
- manifest
- Web app manifest generation for PWA.
- notifications
- Push notification support for PWA.
- service_
worker - Service worker integration for PWA functionality.
- sync
- Background sync capabilities for PWA.
Structs§
Functions§
- initialize
- Initialize PWA with console error panic hook.