首页 > 解决方案 > 调用 showOpenFilePicker :调用类方法时如何避免“必须来自手势”

问题描述

访问本地文件系统:https ://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle

如果我直接在我的按钮事件关闭中内联我所有的 show(Open|Save)FilePicker API 逻辑代码或调用普通的 fn,那么一切正常。但是,如果我定义一个带有帮助器方法的类并从我的事件处理程序中调用这些方法,并且这些帮助器调用文件选择器,那么我会收到此错误:

Uncaught DOMException: Failed to execute 'showOpenFilePicker' on 'Window': Must be handling a user gesture to show a file picker.

我假设安全系统正在考虑this建立手势上下文 - 有没有办法用我的班级中运行的代码重新建立这个上下文?

标签: google-chromefilesystemslocal-files

解决方案


原来类方法是一个红鲱鱼 - 问题与异步代码和承诺有关 - 这就是失去上下文并导致错误的原因。您需要在没有任何承诺链接的情况下对 FS 进行任何调用。


推荐阅读