Web视图UWP未在计算机中加载文件

时间:2017-04-06 14:24:50

标签: webview uwp

我可以使用UWP中的网页视图在C盘或任何位置打开html文件吗?

我正在使用以下代码,但它无效:

  Uri targeturi = new Uri("C:/Users/user/Pictures/Files/Forms/dac36cac-5d83-4fae-bf4f-112361b719ea/index.html");
  browser.Navigate(targeturi);

1 个答案:

答案 0 :(得分:0)

In uwp files have limited access permission. By the default the app can only access the application install directory and data locations. Additional locations require special capabilities. More details about file access permission please reference this document

您可以通过调用文件选择器(使用FileOpenPicker和FolderPicker)并让用户选择要访问的应用程序的文件和文件夹来访问可移动设备上的文件和文件夹。了解如何在Open files and folders with a picker中使用文件选择器。

根据您的代码段,您想要访问图片文件夹中的HTML文件。要访问图片文件夹中的文件,请参阅Files and folders in the Music, Pictures, and Videos libraries。注意“功能”页面,选择应用管理的库。因此,打开文件并在WebView中显示文件的正确方法可能如下:

 StorageFolder storageFolder = await KnownFolders.GetFolderForUserAsync(null /* current user */, KnownFolderId.PicturesLibrary);
 StorageFile indexFile = await storageFolder.GetFileAsync("index.html");/*Change to your file path inside the picture folder*/
 browser.NavigateToString(await FileIO.ReadTextAsync(indexFile));

您可能会发现我使用了NavigateToString方法。 Navigate(Uri)方法无法直接通过路径导航到文件。要从应用程序的LocalFolder或TemporaryFolder数据存储中加载未压缩和未加密的内容,请使用带有`ms-appdata方案的Uri的Navigate方法,使用ms-appx-web方案将HTML内容添加到应用程序包中。例如:

webView1.Navigate("ms-appx-web:///help/about.html");

更多详情请参阅WebView的“浏览内容”。 official sample的方案5提供了有关导航到文件的示例,您可以参考。