iframe,embed和object标签不能与通用Windows应用程序(UWP)一起使用?

时间:2018-01-02 07:31:26

标签: uwp windows-10-iot-core windowsiot windows-iot-core-10 windows-community-toolkit

<iframe src="C:\Users\sajith1x\Desktop\1.1.18\test1.html"></iframe> 

<embed src="C:\Users\sajith1x\Desktop\1.1.18\test1.html" width="600" height="400"> </embed>

<object type="text/html" data="C:\Users\sajith1x\Desktop\1.1.18\test1.html"></object>

我的要求是在弹出窗口中加载动态创建的html文件,我尝试了iframe,object和embed标签,这三个都在使用ie和chrome浏览器但不使用UWA(而不是在那个html页面中的数据显示为空白为此提出一些解决方案。

1 个答案:

答案 0 :(得分:0)

如果动态创建的HTML文件不在应用程序相关文件夹中,例如DocumentsLibrary,您可以先读取它并使用NavigateToString()来显示它。要支持访问HTML文件,您需要添加文件类型关联,如下所示:

enter image description here

这是一个C#示例:

        var file = await KnownFolders.DocumentsLibrary.GetFileAsync("test1.html");
        var content = await file.OpenAsync(FileAccessMode.Read);
        ulong size = content.Size;
        using (var inputStream = content.GetInputStreamAt(0))
        {
            using (var dataReader = new Windows.Storage.Streams.DataReader(inputStream))
            {
                uint numBytesLoaded = await dataReader.LoadAsync((uint)size);
                htmlContent = dataReader.ReadString(numBytesLoaded);
            }
        }

        try
        {
            webView1.NavigateToString(htmlContent);
        }
        catch (Exception ex)
        {

        }

如果动态创建的HTML文件位于应用已安装的文件夹,您可以这样做:

enter image description here

在Windows 10 IoT核心版上,如果要访问“C:\”之类的C盘,则需要Set folder permissions for UWP apps请注意,这仅适用于本机Win32 apis,例如。 CreateFile2而不是WinRT apis,如StorageFolder,StorageFile等。