从应用程序数据本地文件夹在UWP中的xaml中的WebView中加载Html文件

aru*_*run 9 c# xaml webview uwp windows-10-universal

我有一个要求,我需要从UWP中的xaml WebView中的app data文件夹加载html文件.Html文件也引用另一个文件夹("99/js /")中的不同Js文件.任何有UWP知识的人都会指导我.在此先感谢我使用以下代码,Browser是我的WebView.

  var Uri = new Uri("ms-appdata:///Local/Downloads/99/index.html");
  Browser.Navigate(Uri);
Run Code Online (Sandbox Code Playgroud)

我在99文件夹中的文件夹结构是: udapte
我正在尝试在离线加载html文件到WebView没有加载相同的html文件正在加载服务器URL.

Jay*_*Zuo 10

index.htmlWebView离线时加载,您需要确保所使用的所有资源index.html都正确地位于应用程序的LocalFolder中.并且所有这些内容必须放在本地文件夹下的子文件夹中.

参考备注的WebView类:

要从应用程序的LocalFolderTemporaryFolder数据存储中加载未压缩和未加密的内容,请使用Navigate方法和使用ms-appdata方案Uri.对此方案的WebView支持要求您将内容放在本地或临时文件夹下的子文件夹中.这样可以导航到URI,例如ms-appdata:/// local/folder/file.html和ms-appdata:/// temp/folder/file.html.(要加载压缩或加密的文件,请参阅NavigateToLocalStreamUri.)

例如,我创建了一个简单index.html使用index.jsjs文件夹,index.csscss文件夹中.

的index.html

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <script src="js/index.js"></script>
    <link href="css/index.css" rel="stylesheet" />
</head>
<body>
    <button id="myBtn">Click Me!</button>
    <div id="myDiv"></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

index.js

window.onload = function () {
    document.getElementById("myBtn").onclick = function () {
        document.getElementById("myDiv").innerHTML += "You have clicked once! <br>";
    }
}
Run Code Online (Sandbox Code Playgroud)

index.css

#myDiv {
    border: 2px dotted black;
    width: 500px;
    height: 500px;
}
Run Code Online (Sandbox Code Playgroud)

它们位于我的应用程序的LocalFolder中,如下所示:
在此输入图像描述

然后在我的UWP应用程序中,我使用了以下代码:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <WebView x:Name="Browser" />
</Grid>
Run Code Online (Sandbox Code Playgroud)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
    Browser.Navigate(new Uri("ms-appdata:///local/Downloads/index.html"));
}
Run Code Online (Sandbox Code Playgroud)

这很好用:
在此输入图像描述
因此,如果您的html文件未加载,请检查您的应用的LocalFolder并确保您的html文件和资源位于正确的位置.

在本地计算机上,数据文件存储在文件夹中

%USERPROFILE%\应用程序数据\本地\包\ {}包标识

通常是C:\ Users\{UserName}\AppData\Local\Packages\{PackageId},其中{UserName}对应于Windows用户名,{PackageId}对应于Windows应用程序包标识符,您可以Package family name在应用程序清单的" 打包"选项卡中找到该标识符文件.该LocalState包文件夹内的文件夹是LocalFolder.

对于Mobile Emulator,我们可以使用一些工具,如IsoStoreSpyWindows Phone Power Tools来检查LocalFolder.

如果你可以加载html文件,但缺少一些资源,比如缺少css样式,你可能需要检查你的html代码并确保引用是正确的.