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.html在WebView离线时加载,您需要确保所使用的所有资源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使用index.js的js文件夹,index.css在css文件夹中.
的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)
然后在我的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,我们可以使用一些工具,如IsoStoreSpy或Windows Phone Power Tools来检查LocalFolder.
如果你可以加载html文件,但缺少一些资源,比如缺少css样式,你可能需要检查你的html代码并确保引用是正确的.