1

我正在以 Metro 风格创建我的第一个 Windows 8 应用程序。我正在尝试使用用于 runescape 的 iframe 来做到这一点。

这是我的代码:

    <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Runescape_Metro_Client</title>

    <!-- WinJS references -->
    <link href="//Microsoft.WinJS.2.0/css/ui-dark.css" rel="stylesheet" />
    <script src="//Microsoft.WinJS.2.0/js/base.js"></script>

    <!-- Runescape_Metro_Client references -->
    <link href="/css/default.css" rel="stylesheet" />
    <script src="/js/default.js"></script>
</head>
<body>
    <iframe sandbox="allow-scripts" id="Iframe" src="http://www.runescape.com/game" style="width:100%; height:100%"></iframe>
</body>
</html>

这是我得到的错误:

APPHOST9625:Kan niet navigeren naar:' http ://www.runescape.com/game '。Een iframe heeft geprobeerd om naar een URI te navigeren die niet 是 de ApplicationContentUriRules voor deze 应用程序中的 opgenomen。Gebruik in plaats daarvan een x-ms-webview-element om de URI te bekijken of voeg de URI toe aan de ApplicationContentUriRules-sectie van het pakketmanifest, zodat het iframe daarnaartoe kan navigeren。(Visual Studio 中的 Voeg deze URI toe aan het tabblad Content URIs van de Manifest Designer。)

(用谷歌翻译成英文是:

APPHOST9625:无法导航到:http ://www.runescape.com/game 。iframe 已尝试导航,但此应用的 ApplicationContentUriRules 中未包含该导航。到 URI 相反,使用 x-ms-webview 元素查看 URI 是否将 URI 添加到包清单的 ApplicationContentUriRules 部分,以便 iframe 去那里导航。(在 Visual Studio 中将此 URI 写入清单设计器 URI 的“内容”选项卡。)

谷歌没有帮助,所以这就是我在这里问它的原因。

4

3 回答 3

3

对于 Windows 8.1 应用,您不能再将 iframe 用于不安全的 http URI。您将在问题中收到错误消息,提示您可以将 URI 添加到 ApplicationContentUriRules,但它只允许您将 https URI 添加到规则中。

因此,如果您想从您的应用程序中提供非安全内容,您将不得不使用专有<x-ms-webview>标签。<iframe>(例如<x-ms-webview src="http://www.google.com">

http://www.kraigbrockschmidt.com/2014/01/13/frame-to-webview-part-one/

于 2015-03-06T20:17:01.600 回答
1

在迁移到 Windows 8.1 时,在大多数情况下,您应该使用 x-ms-webview 控件代替 iframe。它通常就像在你的标记中替换一样简单。但是,如果您在 Win8 中与 iframe 进行 postMessage 通信,则需要将该代码转换为使用 webview 的 invokeScriptAsync(调用 webview 中的函数)并使用 window.external.notify 将事件返回给应用程序。

于 2015-02-01T17:30:14.140 回答
-1

您需要打开 apppackage.manifest 文件并转到 Content URIs 选项卡,包括您尝试从 iframe 启动的 url。

于 2014-01-19T00:21:24.487 回答