tauri-plugin-broadcast 0.4.1

Android intent broadcast plugin for Tauri V2
Documentation

tauri-plugin-broadcast

A high-performance Android Intent Broadcast plugin for Tauri V2. This plugin allows your Tauri application to listen to system broadcasts, such as barcode scanner events, system status changes, and custom intents.

Built with Tauri V2 IPC Channels for reliable, point-to-point data transmission without global event namespace conflicts.

Features

  • 🚀 High Performance: Direct IPC Channel communication.
  • 📱 Android Native: Full support for Android BroadcastReceiver.
  • 🛠️ Developer Friendly: Built-in TypeScript definitions and Vant-ready UI patterns.
  • 🔒 Security First: Integrated with Tauri V2 permission system.

Installation

1. JavaScript/TypeScript (Frontend)

npm install tauri-plugin-broadcast-api

# or

pnpm add tauri-plugin-broadcast-api

2. Rust (Backend)

Add the following to your src-tauri/Cargo.toml:

[dependencies]

tauri-plugin-broadcast = { git = "https://github.com/dduutt/tauri-plugin-broadcast", branch = "main" }

Setup

Plugin Registration

Register the plugin in your src-tauri/src/lib.rs:

pub fn run() {
    tauri::Builder::default()
        .plugin(tauri_plugin_broadcast::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Permissions

Add the permission to your capability file (e.g., src-tauri/capabilities/default.json):

{
  "permissions": [
    "broadcast:default"
  ]
}

Usage

Listen to Broadcasts (e.g., Barcode Scanner)

import { register, unregister } from 'tauri-plugin-broadcast-api';

const action = "com.android.server.scannerservice.seuic.scan";

// Start listening
const stop = await register(action, (event) => {
  console.log('Received broadcast:', event.action);
  console.log('Extras:', event.extras);
});

// Stop listening when needed
// await unregister(action);

API

register(action: string, onEvent: (event: BroadcastEvent) => void): Promise<() => void>

Registers a broadcast receiver for the specified intent action.

unregister(action: string): Promise<void>

Unregisters the broadcast receiver for the specified intent action.

Interfaces

export interface BroadcastEvent {
  action: string;
  extras: any;
}

License

MIT or Apache-2.0.