Skip to main content

Crate oxigdal_pwa

Crate oxigdal_pwa 

Source
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 hooks
  • notifications: Push notification support
  • background-sync: Background synchronization
  • geospatial-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§

PwaApp
Main PWA application manager.
PwaConfig
PWA configuration and initialization.

Functions§

initialize
Initialize PWA with console error panic hook.