UWP应用程序尝试将本地HTML文件加载到Webview控件中。

3

我的通用Windows应用需要使用Webview控件加载HTML文件。我尝试了以下在这个问题中给出的解决方案,但是无法使其工作。

在WebView Metro Style应用中加载本地HTML文件

现在我的代码如下所示,它会报错:

错误CS4036 'IAsyncOperation'不包含定义为'GetAwaiter'的内容,也没有接受类型为'IAsyncOperation'的第一个参数的扩展方法'GetAwaiter'(您是否缺少了对'System'的使用指令?)ReaderX c:\ users \ sumod \ documents \ visual studio 2015 \ Projects \ ReaderX \ ReaderX \ Views \ TextView.xaml.cs 28

这是我的代码:

namespace ReaderX.Views
{
    /// <summary>
    /// An empty page that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class TextView : Page
    {
        private NavPoints point;
        public TextView()
        {
            this.InitializeComponent();
        }

        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            point = (NavPoints)e.Parameter;
            StorageFolder storageFolder = ApplicationData.Current.LocalFolder;
            StorageFile sampleFile = await storageFolder.GetFileAsync("sample.txt");
            var html = await Windows.Storage.FileIO.ReadTextAsync(sampleFile);

            HTMLViewer.NavigateToString(html);
        }
    }
}

有没有其他方法可以做到这一点?

你在声明这个类的cs文件中有写"using System;"吗?很可能缺少了(正如编译器错误所说),因为这应该可以编译... - gregkalapos
@gregkalapos:是的,我有。我已经检查过了。 - Sumodh S
你能分享一个可复现的项目吗? - Alan Yao - MSFT
2个回答

6

嗨,如果你有时间,请告诉我这是否有效:

在您的 Assets 文件夹中创建一个名为 MyHTMLPage 的 Html 文件,它的生成操作类型为 content,复制到输出选项为始终复制。

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>

在Main Page.xaml页面上:
  <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <WebView x:Name="MyWebView"  Width="200" Height="300"></WebView>
    </Grid>

在Main 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));
        }
    }

这对你是否有效?

0

这段代码示例在我的电脑上可以运行。你尝试使用新项目了吗?我相信你的引用存在问题。

尝试逐个删除你的引用,找出罪魁祸首。


我甚至尝试重新安装Visual Studio(还创建了一个新项目)。如果我在这个方法中放置这段代码,它会给我一个错误。我把它移到另一个类中,现在它可以正常工作了。 - Sumodh S

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