iframe visual studio html5 приложение для Windows 8
Я создаю свое первое приложение для Windows 8 в стиле metro. Я пытаюсь сделать это с помощью iframe для runescape.
Это мой код:
<!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 is is opgenomen in de ApplicationContentUriRules voor deze app. Gebruik in plaats daarvan een x-ms-webview-element om de URI te bejjken of the voe de URI toe aan de ApplicationContentUriRules-secty van het pakketmanifest, zodat het iframe daarnaartoe kan navigeren. (Voeg в Visual Studio - "URI содержимого").
(переведено на английский с Google Translate это:
APPHOST9625: Невозможно перейти по адресу: http://www.runescape.com/game. Iframe попытался перейти, который не включен в ApplicationContentUriRules для этого приложения. Для URI Вместо этого используйте элемент x-ms-webview, чтобы увидеть, добавляет ли URI URI в раздел ApplicationContentUriRules манифеста пакета, поэтому iframe перейдет туда для навигации. (Запишите в Visual Studio этот URI на вкладку "Содержимое" URI конструктора манифеста.)
Google не помог, поэтому я спрашиваю это здесь.
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/
При переходе на Windows 8.1 вы должны использовать элемент управления x-ms-webview вместо iframe в большинстве случаев. Как правило, это так же просто, как заменить на в вашей разметке. Однако, если у вас есть связь postMessage с iframe в Win8, вам нужно преобразовать этот код, чтобы использовать invokeScriptAsync веб-просмотра (для вызова функций в веб-представлении) и использовать window.external.notify, чтобы вызывать события обратно в приложение.
Вам нужно открыть файл apppackage.manifest и перейти на вкладку Content URI, включая URL-адрес, который вы пытаетесь запустить из iframe.