Я видел эту публикацию SO об использовании iframe и выполнении postMessage: Metro App и файл cookie iFrame. Я пытаюсь сделать что-то очень похожее в Win8 Release Preview с приложением HTML/JS Metro, но кажется невозможным воспроизвести поведение в этом решении.
У меня есть простой кадр, хранящийся в удаленном месте, как:
<!DOCTYPE html>
<html>
<body>
<script>
window.onmessage = function(e) {
alert("Hello world");
debugger;
};
</script>
</body>
</html>
В моем default.html у меня есть div, который содержит iframe следующим образом:
<div id="container">
<iframe id="frame" src="https://dl.dropbox.com/u/75275447/win8Frame.html"></iframe>
</div>
У меня есть произвольная кнопка, которая выполняет postMessage в #frame и на обычном сайте Html запускает удаленные кадры onmessage, но вместо этого я могу посмотреть список ошибок в VS и увидеть:
APPHOST9613: приложению не удалось перейти к https://dl.dropbox.com/u/75275447/win8Frame.html из-за этой ошибки: RESOURCE_NOT_FOUND.
Я попытался изучить любой манифест, который мог бы позволить мне добиться этого, и включил:
- Домашняя или рабочая сеть
- Интернет (клиент и сервер)
- Интернет (Клиент)
Безрезультатно... Я также пытался загрузить фрейм (локальный для приложения) в веб-контент (через ms-wwa-web://), который содержит div, в котором размещается удаленный iframe, и связывает onmessage для пересылки postMessage на удаленный iframe, но снова вижу другую ошибку:
APPHOST9624: приложение не может использовать скрипт для загрузки URL-адреса ms-wwa-web://frame.html/, так как этот URL-адрес запускает другое приложение. Только прямое взаимодействие с пользователем может запустить другое приложение.
Я начинаю думать, что это невыполнимая задача.