0.1.0 • Published 2 months ago
@sosweetham/tauri-plugin-torch-api v0.1.0
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 "@sosweetham/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-toggle
allow-check
Permission Table
torch:allow-check
Enable the check command.
torch:deny-check
Disable the check command.
torch:allow-toggle
Enable the toggle command.
torch:deny-toggle
Disable the toggle command.
Contribution
Notes
- Ping command is boilerplate code, ignore it, I kept it in the reference, might remove later.
- Permission tomls had to be added manually to
./permissions/autogenerated/commands
, contrary to what the tauri documentation says. - 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. - 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
andios
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
andpnpm 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.
0.1.0
2 months ago