Windows Store WebView备选方案

8

我在一个项目中广泛使用WebView,但发现它的缺点成为了这个项目的绊脚石。有没有其他替代品可以在Windows Store应用程序中呈现HTML?

编辑:根据要求,以下是我们对此控件的一些问题:

  • 它不支持依赖属性,需要调用方法(需要解决方案:将其包装在自定义控件或附加属性中...)
  • 它无法呈现本地HTML文件(通过NavigateToString解决)
  • 如果本地HTML文件包含额外的文件,例如CSS或JS,则需要更多解决方案才能使其正常工作
  • 它是在IE10之上呈现的,因此会覆盖其他控件(再次需要那个可怕的-抱歉-WebBrush解决方案)
  • 当放置在ListView中时,动画效果不佳(滚动速度比其他控件快,而且拉伸得很奇怪),没有解决方案
  • 当放置在动画Flyout中时,动画根本不起作用,没有解决方案
  • 如果你放大缩小,它会破坏纵向模式下的语义缩放(除了需要WebBrush解决方案使其正常工作之外),原因不明。只要不导航任何内容,它在横向和纵向上都可以工作,但永远不要导航到网站,否则它会破坏缩放。

我们可能还有更多问题,但以上这些问题使我们认为它是一个绊脚石。


一种选择是使用JavaScript/HTML5创建应用程序。这样,您就有更多的可能性来显示HTML... - Rico Suter
我承认 WebView 组件存在问题,但其中很多功能都可以正常使用: 2. 如果与您的应用程序一起打包,则可以使用 ms-appx-web:/// 开头,否则请确保您的应用程序可以访问该文件。 3. 是的,它们可以正常工作,只需将它们相对于 HTML 文件设置即可。 - James
@James 是的,但你几乎总是需要一个变通方法(正如我所写的)。我们正在从网络上下载压缩的HTML文件,所以将其包含在应用程序中并不能让它正常工作。 - user604613
@UrbanEsc 好的,我没有显示本地非应用程序文件在 WebView 的经验。我建议查找与 Windows Store 核心 .net 兼容的 WebKit 项目;也许是这个?http://chriscavanagh.wordpress.com/2010/10/04/a-real-net-4-0-webbrowser/ 但我没有测试过。 - James
对于本地内容(甚至在线内容),您可以在WebView.NavigateToLocalStreamUri方法中使用IUriToStreamResolver。 - t.ouvre
显示剩余2条评论
1个回答

1
我们曾经遇到过同样的问题,但是通过这个XAML Toolkit for WinRT中更加不容易出现"缺陷"的替代方案解决了它。
你需要看一下WebBrowser控件。

1
我知道这是一个旧答案,但 XAML 工具包的文档将 WebBrowser 控件描述为现有的 WebView 控件的包装器,并添加了一些额外功能,用于管理历史记录、地址栏、标题和站点图标。据我所知,这对于 OP 的问题没有任何帮助。 - Kit Grose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接