从应用程序数据本地文件夹在UWP中的xaml中的WebView中加载Html文件
我有一个要求,我需要从UWP中的xaml WebView中的app数据文件夹加载html文件。 Html文件也引用另一个文件夹(“99 / js /”)中的不同Js文件。 任何有UWP知识的人都会指导我。 在此先感谢我使用以下代码, Browser
是我的WebView。
var Uri = new Uri("ms-appdata:///Local/Downloads/99/index.html"); Browser.Navigate(Uri);
我在99文件夹中的文件夹结构是: udapte
我正在尝试在离线加载html文件到WebView没有加载相同的html文件正在加载服务器URL。
要在离线时在WebView
加载index.html
,您需要确保index.html
中使用的所有资源都正确地位于应用程序的LocalFolder中 。 并且所有这些内容必须放在本地文件夹下的子文件夹中 。
WebView类中的参考备注 :
要从应用程序的LocalFolder或TemporaryFolder数据存储中加载未压缩和未加密的内容,请使用Navigate方法和使用ms-appdata方案的Uri 。 对此方案的WebView支持要求您将内容放在本地或临时文件夹下的子文件夹中。 这样可以导航到URI,例如ms-appdata:/// local / folder / file.html和ms-appdata:/// temp / folder / file.html 。 (要加载压缩或加密的文件,请参阅NavigateToLocalStreamUri 。)
例如,我创建了一个简单的index.html
,它使用js
文件夹中的index.js
和css
文件夹中的index.css
。
的index.html
index.js
window.onload = function () { document.getElementById("myBtn").onclick = function () { document.getElementById("myDiv").innerHTML += "You have clicked once!
"; } }
index.css
#myDiv { border: 2px dotted black; width: 500px; height: 500px; }
它们位于我的应用的LocalFolder中,如下所示:
然后在我的UWP应用程序中,我使用了以下代码:
protected override void OnNavigatedTo(NavigationEventArgs e) { Browser.Navigate(new Uri("ms-appdata:///local/Downloads/index.html")); }
这很好用:
因此,如果您的html文件未加载,请检查您的应用的LocalFolder并确保您的html文件和资源位于正确的位置。
在本地计算机上,数据文件存储在文件夹中
%USERPROFILE%\应用程序数据\本地\包\ {}包标识
通常是C:\ Users \ {UserName} \ AppData \ Local \ Packages \ {PackageId} ,其中{UserName}
对应Windows用户名, {PackageId}
对应于Windows Store应用程序包标识符,您可以找到它作为Package family name
应用程序清单文件的“ 打包”选项卡中的Package family name
。 包文件夹中的LocalState文件夹是LocalFolder。
对于Mobile Emulator,我们可以使用一些工具,如IsoStoreSpy或Windows Phone Power Tools来检查LocalFolder。
如果你可以加载html文件,但缺少一些资源,比如缺少css样式,你可能需要检查你的html代码并确保引用是正确的。