Windows 10 UWP Javascript 应用下载权限
Posted
技术标签:
【中文标题】Windows 10 UWP Javascript 应用下载权限【英文标题】:Windows 10 UWP Javascript App Download Permissions 【发布时间】:2021-08-24 19:32:43 【问题描述】:我创建了一个用 html、CSS 和 javascript 编写的 UWP 应用程序,方法是安装 Visual Studio 17 并选择 Javascript - Blank App 作为新项目,将 HTML、CSS 和 Javascript 文件以及一些图像添加到项目目录中,接受默认的 Internet(客户端)权限并运行包。
几乎一切都按我预期的那样工作,但是让我有些悲伤的一个问题是,能够创建文本文件并将其写入 C:\ 驱动器上用户选择的文件夹。事实上,我什至无法在用户下载目录中创建文本文件。
我在微软开发者网站上找到了以下信息
“默认情况下,您的应用只能访问您的应用创建的用户下载文件夹中的文件和文件夹。但是,您可以通过调用文件选择器(FileOpenPicker 或 FolderPicker)来访问用户下载文件夹中的文件和文件夹以便用户可以导航和选择文件或文件夹供您的应用访问”。
我可以从 javascript 中调用文件选择器吗?我需要添加更多权限,还是需要转换到基于 WebView2 的应用程序并在 C# 中执行此操作?
“您的应用创建的用户下载文件夹”到底在哪里?这是“下载”下的子文件夹吗?需要创建吗?如果是这样,它可以从javascript创建吗?
或者我只是在清单中缺少一些权限?如果有,是哪个?
我们将不胜感激地收到有关此问题的所有帮助?
【问题讨论】:
【参考方案1】:我可以从 javascript 中调用文件选择器吗?我需要添加更多权限,还是需要转换到基于 WebView2 的应用程序并在 C# 中执行此操作?
是的,您可以从 javascript 调用 FileOpenPicker 或 FolderPicker。您可以查看此示例:FilePicker。这是有关文件选择器的存档官方 JS 示例,但它仍然适用于 JS。
“您的应用创建的用户下载文件夹”到底在哪里?这是“下载”下的子文件夹吗?需要创建吗?如果是这样,它可以从javascript创建吗?
当您在下载库中创建文件时,系统会首先在下载库中自动创建一个以您的应用名称命名的文件夹。它是下载库的子文件夹。假设它被称为MyApp
文件夹。您的应用创建的所有文件夹和文件都列在应用的子文件夹中。
例如,您调用了DownloadsFolder.CreateFolderAsync("New Folder")
方法来创建文件夹。代码执行时,会在MyApp
文件夹下创建一个名为New Folder
的文件夹。
这种行为很容易测试。你可以试一试,它会帮助你理解。
默认情况下,您的应用可以直接访问MyApp
文件夹。但不是下载库下的其他文件或文件夹。如果你想访问其他文件或文件夹,那么你必须使用 FilePickers 来获取我上面提到的文件。
【讨论】:
以上是关于Windows 10 UWP Javascript 应用下载权限的主要内容,如果未能解决你的问题,请参考以下文章
在Windows 10 UWP WinJS应用程序中,如何确定构建中包含哪些文件?