ios_local_notification 1.0.0

Send local notifications on iOS.
Documentation
  • Coverage
  • 92.31%
    12 out of 13 items documented0 out of 1 items with examples
  • Size
  • Source code size: 22.17 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.52 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 21s Average build duration of successful builds.
  • all releases: 22s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • DevYatsu/ios_local_notification
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • DevYatsu

ios_local_notification

Crates.io Docs.rs License

Send local notifications on iOS directly from Rust, powered by swift-rs.

⚠️ Platform support: This crate works only on iOS.
Android or other platforms are not supported.

✨ Features

  • Request notification permissions (default or with fine-grained options).
  • Schedule one-time, repeating, or image-based notifications.
  • Clear pending or delivered notifications.
  • Remove notifications by identifier.
  • Retrieve lists of pending or delivered notifications.

📦 Installation

cargo add ios_local_notification

🚀 Usage

use ios_local_notification as notif;

fn main() {
    // Request permission with default options (all perms)
    notif::request_permission_default();

    // Or request custom permissions
    notif::request_permission(
        notif::permission::ALERT | notif::permission::SOUND,
    );

    // Schedule a notification after 5 seconds
    notif::schedule("welcome", "Hello!", "This is your first notification 🚀", 5);

    // Schedule a repeating notification
    notif::schedule_repeat("ping", "Reminder", "This repeats every 10s", 10);

    // Schedule with an image attachment
    notif::schedule_image("img1", "Picture!", "With an image", "example.png", 5);

    // Query notifications
    let pending = notif::pending_notifications();
    let delivered = notif::delivered_notifications();
    println!("Pending: {:?}", pending);
    println!("Delivered: {:?}", delivered);

    // Remove a specific notification
    notif::remove_by_id("welcome");

    // Clear all notifications
    notif::clear_all_pending();
    notif::clear_all_delivered();
}

🔑 Permissions

You can request granular permissions using bitflags from permission:

use ios_local_notification::permission;

notif::request_permission(permission::ALERT | permission::SOUND);

Available flags:

  • ALERT → Show banners and alerts
  • SOUND → Play notification sounds
  • BADGE → Set app badge number
  • CARPLAY → Show notifications in CarPlay
  • CRITICAL_ALERT → Bypass Do Not Disturb
  • PROVISIONAL → Deliver quietly without user prompt

📚 Documentation

👉 Read the full API docs on docs.rs