Files
WYF-koubo/electron/lib/permission.ts
T
2026-06-19 18:45:55 +08:00

42 lines
1.2 KiB
TypeScript

import {isMac} from "./env";
let nodeMacPermissions = null;
if (isMac) {
(async () => {
try {
nodeMacPermissions = await import("node-mac-permissions");
nodeMacPermissions = nodeMacPermissions.default;
// console.log('nodeMacPermissions',nodeMacPermissions);
} catch (e) {}
})();
}
export const Permissions = {
async checkAccessibilityAccess(): Promise<boolean> {
return new Promise((resolve, reject) => {
if (isMac) {
const status = nodeMacPermissions.getAuthStatus("accessibility");
resolve(status === "authorized");
} else {
resolve(true);
}
});
},
async askAccessibilityAccess() {
nodeMacPermissions.askForAccessibilityAccess();
},
async checkScreenCaptureAccess(): Promise<boolean> {
return new Promise((resolve, reject) => {
if (isMac) {
const status = nodeMacPermissions.getAuthStatus("screen");
resolve(status === "authorized");
} else {
resolve(true);
}
});
},
async askScreenCaptureAccess() {
nodeMacPermissions.askForScreenCaptureAccess(true);
},
};