2016-01-13 75 views
2

正如标题所述,我正在构建Windows通用应用程序,并试图加载作为我的应用程序包一部分的.html文件,但我无法执行此操作。无法在WindowsUniversal应用程序中使用WebView控件打开.html文件

该应用弹出一个对话框,表示我需要在商店中找到另一个应用程序以在运行时打开此ms-appx。

我在我的文件类型声明中指定了.html,在这一点上我没有想法。我错过了什么?

我会添加一些信息的附加位: 当通过XAML设计师指定源自动生成的属性是:Source="ms-appx:///Assets/MyFile.html"

我创建了一个自定义的ContentDialog控制而这正是我试图加载我带有.html资源的WebView。有趣的是,当我修改我的Source属性为ms-appx-web在一个正常的XAML页面元素时,它正确显示了我的文件。但是,当我做同样的事情时,ContentDialog仍然不显示任何内容。

不太确定会导致这种差异。

+1

可能的重复http://stackoverflow.com/questions/10684741/load-local-html-file-in-webview-metro-style-app –

+0

@MehrzadChehraz增加了额外的说明以避免重复。 –

+0

我用一个普通的ContentDialog控件进行了测试,它[效果很好](http://i.stack.imgur.com/lvtsi.png)。你能分享一个简单的样本,可以重现你的问题? –

回答

0

只是一个想法。项目中包含的HTML文件如何? 查看文件属性 - >高级 - > BuildActíon。

它是“编译”,“内容”,“嵌入式资源”。试着去玩,这在我的解决方案中有时是一个问题。

HTH, 奥利弗

1

这里是一个快速的样品告诉我,这可以帮助您:

我在我的资产HTML文件文件夹,名为MyHTMLPage,它的类型的内容和构建行动复制到输出以始终复制。 我的HTML文件:

<!DOCTYPE html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="utf-8" /> 
    <title></title> 
</head> 
<body> 
<div style="background-color: chartreuse">HELLO WORLD, from a webview</div> 
</body> 
</html> 

在我的主要Page.xaml:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <WebView x:Name="MyWebView" Width="200" Height="300"></WebView> 
    </Grid> 

在我的主要Page.cs:

public sealed partial class MainPage : Page 
    { 
     public MainPage() 
     { 
      this.InitializeComponent(); 
      Loaded += MainPage_Loaded; 
     } 

     private void MainPage_Loaded(object sender, RoutedEventArgs e) 
     { 
      string src = "ms-appx-web:///Assets/MyHTMLPage.html"; 
      this.MyWebView.Navigate(new Uri(src)); 
     } 
    } 

,瞧这应该工作,你应该看到的东西像这样: 它不漂亮^^: enter image description here

相关问题