tauri-plugin-mobile-share

Crates.iotauri-plugin-mobile-share
lib.rstauri-plugin-mobile-share
version0.1.2
created_at2025-06-19 18:05:13.444683+00
updated_at2025-06-20 17:04:19.693083+00
descriptionA Package for Sharing Tauri Mobile App Content
homepage
repositoryhttps://github.com/tactile-eng/tauri-plugin-mobile-share
max_upload_size
id1718652
size127,772
Alex Moon (alexmoon)

documentation

README

Tauri Plugin Mobile Share

Platform Supported
iOS
Android x
Linux x
Windows x
macOS x

Purpose

This project exists to allow for a simple and convenient way to leverage the "share" functionality of mobile platforms, which in some cases (cough iOS cough) is the only meaningful way to save data to a user's device. Of course, there is the option of simply using the Web Share API standard, which will let you interact with said functionality with zero imports and should work in almost every circumstance. Should you find yourself in need of something else, hopefully this project will be of use.

Install

Here's how you can install this project in your app:

  1. Use cargo to install in your tauri src-tauri directory: cargo add tauri-plugin-mobile-share
  2. Use npm (or your preferred alternative) to install the guest bindings in your package.json's directory: npm install tauri-plugin-mobile-share

Usage

First you need to register the core plugin with Tauri:

src-tauri/src/lib.rs

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

Then, you'll need to allow usage of the plugin by Tauri:

src-tauri/capabilities/base.json

{
    ...
    "permissions": [
        ...,
        "mobile-share:default"
    ]
}

Afterwards all the plugin's APIs are available through the JavaScript guest bindings (with type data):

import { shareBinary, shareText } from "tauri-plugin-mobile-share";
import type { ShareMeta } from "tauri-plugin-mobile-share";

const textData = "lorem ipsum dolor sit amet...";
const textMetadata: ShareMeta = { name: "My File", ext: "txt" };

shareText(textData, textMetadata);

const data: ArrayBuffer; // not included: your file data...
const binaryData = Buffer.from(data).toString("base64");
const binaryMetadata: ShareMeta = { name: "My File", ext: "png" };

shareBinary(binaryData, binaryMetadata);

TODO

  • Add Android Support
  • Simplify JS guest bindings

Acknowledgements

I would like to thank the contributors of the Tauri Barcode Scanner Plugin, without whose examples--both literal and figurative--this project would have taken significantly more time and effort to complete.

Commit count: 14

cargo fmt