Necesito una función de archivo local abierto en mi sitio web, así que uso la API de acceso al sistema de archivos en mi código. cuando mi web edita el archivo abierto desde local y es necesario guardarlo en el archivo original. Encontré que no tiene permiso. Por lo tanto, encuentro la forma de solicitar permiso de manejo de archivo como se muestra a continuación:
async function verifyPermission(fileHandle: any, readWrite: boolean) { const options = { mode: 'readwrite', }; let isPermit = false; // Check if permission was already granted. If so, return true. if ((await fileHandle.queryPermission(options)) === 'granted') { isPermit = true; } if ((await fileHandle.requestPermission(options)) === 'granted') { isPermit = true; } return isPermit; } pero cuando ejecuto fileHandle.requestPermission(options) es un error de consola
Uncaught (in promise) DOMException: User activation is required to request permissions.¿Qué me estoy perdiendo? gracias qq
Siempre puede consultar los permisos de un archivo, pero la solicitud requiere un gesto del usuario (como un botón para hacer clic). Esto se describe en la especificación (énfasis mío):
Si el estado del permiso de lectura de este controlador es diferente a "prompt", devolverá ese estado directamente. Sin embargo, si es "solicitud", se necesita la activación del usuario y esto mostrará una solicitud de confirmación para el usuario. A continuación, se devuelve el nuevo estado de permiso de lectura, en función de la respuesta del usuario a la solicitud.
Debe desvincular la consulta y la solicitud de permisos en su implementación.