Crates.io | tauri-plugin-mobile-share |
lib.rs | tauri-plugin-mobile-share |
version | 0.1.2 |
created_at | 2025-06-19 18:05:13.444683+00 |
updated_at | 2025-06-20 17:04:19.693083+00 |
description | A Package for Sharing Tauri Mobile App Content |
homepage | |
repository | https://github.com/tactile-eng/tauri-plugin-mobile-share |
max_upload_size | |
id | 1718652 |
size | 127,772 |
Platform | Supported |
---|---|
iOS | ✓ |
Android | x |
Linux | x |
Windows | x |
macOS | x |
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.
Here's how you can install this project in your app:
cargo
to install in your tauri src-tauri
directory: cargo add tauri-plugin-mobile-share
npm
(or your preferred alternative) to install the guest bindings in your package.json
's directory: npm install tauri-plugin-mobile-share
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);
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.