systemPreferences - systemPreferences.requestDirectoryPermission(path)

概述

返回 Promise - 如果用户允许授权或已授权则resolve true,当 path 为 null 时,会同时请求用户下载、桌面、文档三个目录的权限,三个目录其中一个授权则resolve true。系统授权弹窗仅会弹出一次,如果已经请求权限或请求被拒绝,必须 在 设置 -> 隐私和安全 中手动更改,不会弹出提醒。

基本信息

属性
模块 systemPreferences
类型 Method
鸿蒙支持 支持

OHOS 依赖与基本表现

属性
系统权限依赖 无需申请,module.json5中已经包含所需权限
添加JIT权限 支持
坚盾模式 支持

使用方式差异

属性
使用方式差异 存在差异
差异说明 鸿蒙平台独有接口,单独提供使用Demo,详见Demo

Demo

const { app, BrowserWindow, systemPreferences } = require('electron');
const path = require('path');

function createWindow() {
  const win = new BrowserWindow({
    width: 1000,
    height: 800,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    }
  });
  // systemPreferences.requestDirectoryPermission(path)
  // path string | null
  // 返回 Promise<boolean> - 如果用户允许授权或已授权则resolve true,当 path 为 null 时,会同时请求用户下载、桌面、文档三个目录的权限,三个目录其中一个授权则resolve true。
  // 系统授权弹窗仅会弹出一次,如果已经请求权限或请求被拒绝,必须 在 设置 -> 隐私和安全 中手动更改,不会弹出提醒。
  console.log('electron call systemPreferences.requestDirectoryPermission() result is:',systemPreferences.requestDirectoryPermission('user-document-dir'));
  console.log('electron call systemPreferences.requestDirectoryPermission() result is:',systemPreferences.requestDirectoryPermission('user-desktop-dir'));
  console.log('electron call systemPreferences.requestDirectoryPermission() result is:',systemPreferences.requestDirectoryPermission('user-document-dir'));
  console.log('electron call systemPreferences.requestDirectoryPermission() result is:',systemPreferences.requestDirectoryPermission());
}

app.whenReady().then(createWindow);