UWP WebView中的ms-appdata方案触发器UnsupportedUriSchemeIdentified

科尔库斯

我正在使用C#开发uwp应用程序。我需要下载网站的资源,包括图像,脚本和html页面,以便可以在脱机时显示它。我下载资源并将其保存在本地文件夹下。但是,当我尝试(从javascript脚本内部)访问它们时,将触发UnsupportedUriSchemeIdentified事件。

这是一段使用资源的javascript代码

function startSth(sth,tracking){
    sthAPI.SetSth(sth, tracking);

    var sthUrl = sthBaseUrl + sth.Href;
    if(sth.Parameters !== undefined && sth.Parameters !== null && sth.Parameters !== ""){
        if(sth.Parameters.indexOf('?')===0) sth.Parameters = sth.Parameters.substring(1);
        sthUrl += "?"+sth.Parameters;
    }

    if ( urlParams != "" )
    {
        sthUrl += (sthUrl.indexOf( '?' ) === -1) ? '?' : '&';
        sthUrl += urlParams;
    }
    document.getElementById('mainFrame').src = sthUrl;
}

此代码尝试访问在本地存储中下载的html页面,并将其设置为iframe的源。sthBaseUrl变量由c#代码提供的较早,类似于ms-appdata:///local/folder/

据我了解,该ms-appdata方案是UWP WebView支持的方案之一我看过一些示例,它用于导航到这样的内容webView1.Navigate("ms-appdata:///local/intro/welcome.html");

我不明白为什么会触发该事件。

javascript不是我写的,它是一个更大,更复杂的系统的一部分,因此我没有直接控制来对其进行更改(没有引人注目的论点)。

有谁知道一种绕过此问题并让javascript从本地存储加载页面(和其他资源)的方法吗?

如果没有这种方法,如何修改javascript以实现此目的?

这将触发unsuppoertedUriSchemeIdentified事件。

康斯坦丁

根据官方文档:

的WebView支持导航使用这些方案的URI: ,httphttpsms-appx-webms-local-stream

  1. 据我从代码中看到的,问题是您正在导航到sthUrlWebView内的iframe中,而不是它本身的webview。那就是抛出该异常的地方-出于安全原因,您无法导航到潜在的不安全内容。
  2. 您不能混入来自不同文件夹的相同(webview)上下文文件。

    这些第一级子文件夹中的每一个都与其他第一级子文件夹中的内容隔离。例如,您可以导航到ms-appdata:///temp/folder1/file.html,但是此文件中没有指向ms-appdata:///temp/folder2/file.html的链接。

  3. 最后考虑使用NavigateToLocalStreamUri方法。它应该允许将本地缓存的内容包装到可通过ms-local-stream协议在webview内部引用的流中这是一个很好的说明,说明了如何在完全脱机的方案中使用Web应用程序模板。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在UWP中的大小触发器中更改控件的父级

来自分类Dev

在UWP中更改电源方案

来自分类Dev

UWP 禁用视觉状态或删除触发器

来自分类Dev

UWP中的行为(事件触发命令错误

来自分类Dev

在UWP WebView中显示本地html页面

来自分类Dev

从UWP中的WebView获取选定的内容

来自分类Dev

CosmosDB中的触发器未触发?

来自分类Dev

UWP WebView 等待导航

来自分类Dev

UWP WebView-OnScriptNotify失败的侦听器事件

来自分类Dev

在UWP中获取窗口的分派器

来自分类Dev

UWP 中相机功能的计时器

来自分类Dev

UWP 中的 DXF 转换器

来自分类Dev

使用可视触发器时出现UWP Hamburger导航菜单错误-XAML

来自分类Dev

UWP / WinRT:如何使用VisualState触发器更改特定类型的所有控件的样式?

来自分类Dev

Windows 10 UWP两个自适应触发器未按预期工作

来自分类Dev

如何删除双滚动。xaml uwp 中 ScrollViewer 中的 WebView

来自分类Dev

在 UWP 中是否有 WPF 的“KeyBinding”的替代方案?

来自分类Dev

C# + UWP:将 Windowspath 转换为 ms-appdata uri

来自分类Dev

触发器中的实用指示

来自分类Dev

在Oracle中创建触发器

来自分类Dev

查询以在mysql中创建触发器

来自分类Dev

在触发器中更新表失败

来自分类Dev

mysql中的“代替”触发器

来自分类Dev

从MySQL中的触发器调用URL

来自分类Dev

Aurelia中的多个触发器

来自分类Dev

phpmyadmin中的触发器有问题

来自分类Dev

管道触发器中的<jenkins>时区

来自分类Dev

更新SQL中的触发器

来自分类Dev

Oracle触发器中的RTTI