tauri-plugin-torch Svelte Themes

Tauri Plugin Torch

A plugin that enables for the use of device torch on android and ios.

Tauri Plugin torch

This project is a Tauri plugin which allows for flash control on iOS and Android devices with a consistent API.

Platform Supported
Linux x
Windows x
macOS x
Android
iOS

API

Available Commands

import { ping, toggle, check } from "tauri-plugin-torch-api";
async function toggleTorch() {
    const isTorchOn = await check();
    if (isTorchOn) {
        await toggle(false);
        updateResponse("Torch is off");
    } else {
        await toggle(true);
        updateResponse("Torch is on");
    }
}

async function onTorch() {
    toggle(true).then(updateResponse).catch(updateResponse);
}

async function offTorch() {
    toggle(false).then(updateResponse).catch(updateResponse);
}

Default Permission

This permission set configures which torch features are by default exposed.

Granted Permissions

It allows access to all torch commands.

This default permission set includes the following:

  • allow-ping
  • allow-toggle
  • allow-check

Permission Table

Identifier Description

torch:allow-check

Enable the check command.

torch:deny-check

Disable the check command.

torch:allow-ping

Enables the ping command without any pre-configured scope.

torch:deny-ping

Denies the ping command without any pre-configured scope.

torch:allow-toggle

Enable the toggle command.

torch:deny-toggle

Disable the toggle command.

Contribution

Notes

  1. Ping command is boilerplate code, ignore it, I kept it in the reference, might remove later.
  2. Permission tomls had to be added manually to ./permissions/autogenerated/commands, contrary to what the tauri documentation says.
  3. Be sure to deploy the app using pnpm tauri [android|ios] dev to get the best experience. The IDEs are not aware of the Tauri build process and will not work as expected.
  4. Do it beforehand development because otherwise tauri packages will not be generated for the swift and kotlin code.

Development Troubleshooting

  • Be sure to open the android and ios folders in their respective IDEs (Android Studio and XCode) to get the best development experience.
  • Do not deploy the app using the buttons provided in the IDEs, use the Tauri CLI instead. The IDEs are not aware of the Tauri build process and will not work as expected.
  • You must build the plugin and guest-js before deploying the app using cargo build and pnpm build respectively.
  • The tauri imports may give import errors in the IDEs if you dont use the plugin and deploy the app first.

Looking for

  • Automated Testing Suite - Implementation for testing suite of the plugin would be highly appreciated
  • Documentation - Doc comments are lackluster rn for a library project

Physical Testing

I have tested the plugin on a Pixel 8 Pro (Android 15) and iPhone 13 (iOS 18) and it works as expected. The implementations are really generic and should work on all devices. If you have a device that is not working, please open an issue.

Top categories

Loading Svelte Themes