gpt4 book ai didi

webview - winrt : load local html and its resources in webview

转载 作者:行者123 更新时间:2023-12-01 09:02:57 24 4
gpt4 key购买 nike

我目前正在开发一个 WinRT 应用程序,我从 Windows.Storage.ApplicationData.Current.LocalFolder 加载本地 HTML 文件。我想知道加载嵌入在 HTML 文件中的图像、音频、视频、CSS、JavaScript 等 Assets 的最佳方式是什么。

目前,我在 Windows.ApplicationModel.Package.Current.InstalledLocation 中编写这些文件,但是一旦从商店部署应用程序或通过安装 AppPackage Windows PowerShell,除非您将“Program Files/WindowsApps”文件夹的所有权更改为当前用户或“所有人”。

提前致谢。

最佳答案

我不确定你到底在问什么。 Windows.ApplicationModel.Package.Current.InstalledLocation 的唯一文件是与您的 AppPackage 一起安装的文件,即是您的应用分发的一部分。您的应用不应该(甚至不允许)在其中存储任何文件。

在运行时生成的任何文件都应存储在 Windows.Storage.ApplicationData.Current.LocalFolderWindows.Storage.ApplicationData.Current.RemoteFolderWindows.Storage.ApplicationData.Current.TempFolder,具体取决于您希望它们的保存方式。此规则的唯一异常(exception)是您希望用户甚至从您的应用程序外部访问这些文件 - 然后您应该将它们放入库中(并要求访问它)或使用文件选择器向用户询问位置.

编辑:

加载本地 HTML 资源非常有限,除非它们与应用程序一起分发,即它们存储在 InstalledLocation 中并通过 ms-appx-web 协议(protocol)访问。如documented , WebView 控件不支持 ms-appdata 协议(protocol),该协议(protocol)用于从 LocalStorageRemoteStorage临时文件夹:

Furthermore, WebView does not support the ms-appdata: scheme, although it does support the ms-appx-web: scheme. This enables you to load content files in your project.

这或多或少会带走您在 C# 项目中的所有选择。您可以使用其他 HTML 查看器控件,但我知道 only one它甚至还没有完成。

在 JavaScript 中情况稍微好一点。 ms-appdata 协议(protocol)为 supported only for data files :

Sometimes it is useful to refer to resources you have downloaded from the Internet to your app’s local ApplicationData storage (via Windows Runtime APIs). To refer to such content, you must use the scheme "ms-appdata:", with the path to the file within your ApplicationData local storage. Note that, for security reasons, you cannot navigate to HTML you have downloaded to this location and you cannot run any executable or potentially executable code, such as script or CSS. It is intended for media such as images or videos and the like.

这意味着你可以这样做:

<img src="ms-appdata:///local/img/coal.jpg" />

但不是:

<iframe src="ms-appdata:///local/index.html" />

ms-appdata 协议(protocol)语法为 well documented以防你仍然发现它有用。

关于webview - winrt : load local html and its resources in webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13521884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com