tauri-plugin-macos-permissions

Crates.iotauri-plugin-macos-permissions
lib.rstauri-plugin-macos-permissions
version2.3.0
created_at2024-11-18 04:40:35.336589+00
updated_at2025-05-06 13:39:26.567613+00
descriptionSupport for checking and requesting macos system permissions.
homepage
repositoryhttps://github.com/ayangweb/tauri-plugin-macos-permissions
max_upload_size
id1451770
size244,957
ayangweb (ayangweb)

documentation

README

tauri-plugin-macos-permissions

This plugin only works on tauri v2, if you need the v1 plugin, feel free to submit a PR!

Support for checking and requesting macos system permissions.

https://github.com/user-attachments/assets/acb63744-9773-420a-8a96-6a485c94f5d6

Install

cargo add tauri-plugin-macos-permissions

You can install the JavaScript Guest bindings using your preferred JavaScript package manager:

pnpm add tauri-plugin-macos-permissions-api

Usage

src-tauri/src/lib.rs

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

src-tauri/capabilities/default.json

{
    ...
    "permissions": [
        ...
+       "macos-permissions:default"
    ]
}

If you need to access the microphone or camera permissions, please update src-tauri/Info.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
     ...
+    <key>NSMicrophoneUsageDescription</key>
+    <string>Describe why your app needs to use microphone permission</string>
+    <key>NSCameraUsageDescription</key>
+    <string>Describe why your app needs to use camera permissions</string>
</dict>
</plist>

Afterwards all the plugin's APIs are available through the JavaScript guest bindings:

import { checkAccessibilityPermission } from "tauri-plugin-macos-permissions-api";

const authorized = await checkAccessibilityPermission();
console.log(authorized); // true

Methods

Method Description
checkAccessibilityPermission Check accessibility permission.
requestAccessibilityPermission Request accessibility permission.
checkFullDiskAccessPermission Check full disk access permission.
requestFullDiskAccessPermission Request full disk access permission.
checkScreenRecordingPermission Check screen recording permission.
requestScreenRecordingPermission Request screen recording permission.
checkMicrophonePermission Check microphone permission.
requestMicrophonePermission Request microphone permission.
checkCameraPermission Check camera permission.
requestCameraPermission Request camera permission.
checkInputMonitoringPermission Check input monitoring permission.
requestInputMonitoringPermission Request input monitoring permission.

Example

git clone https://github.com/ayangweb/tauri-plugin-macos-permissions.git
pnpm install

pnpm build

cd examples/tauri-app

pnpm install

pnpm tauri dev

Thanks

Who's Use It

  • EcoPaste - Open source cross-platform clipboard management tool.

  • BongoCat - Open source cross-platform desktop pets.

  • Coco AI - Search, Connect, Collaborate, Your Personal AI Search and Assistant, all in one space.

Commit count: 44

cargo fmt