現在 iOS で作業しているアプリを書き直していますが、Windows 8 のメトロ スタイル アプリで問題が発生しています。特に、外部のHTML コンテンツ (および Css や JavaScript などの関連ライブラリ)を読み込めません。そうすると、さまざまな警告やエラーが表示されたり、リンクされていない JavaScript ファイルが表示されたりします。
サンドボックス化と ms-appx と ms-appx-web のコンテキスト切り替え (JavaScript プロジェクト タイプ) について理解していると思いますが、次のことがわかりました。
iFrame を使用して同じプロジェクト内から html をロードすると、つまりページがレンダリングされ、リンクされた JavaScript が実行されます。
iFrame を使用して ApplicationData (ダウンロード後にファイルが解凍される場所) からロードすることは、前述のコンテキストのいずれでも機能しません。
"The app can’t use script to load the file:///...AppData/Local/Packages/.../index.html because the url launches another app. Only direct user interaction can launch another app."
スクリプトによってロードされていないにもかかわらず、次のようなエラーが表示され、コンテンツが表示されません。JavaScript で使用
launchFileAsync('file:///...AppData/Local/Packages/.../index.html')
すると、コンテンツが読み込まれて表示されますが、外部の JavaScript ファイルにはリンクされず (またはブロックされません)、デスクトップから html ファイルを実行してInternet Explorer restricts this page from running scripts or ActiveX controls
とAllow blocked content
ボタンを取得するのとよく似ています。
残念ながら、このコンテンツはリモートでアプリケーションに配信する必要があります。ただし、アプリの他のすべての側面は変更できます。私がフォローしている他の研究手段は次のとおりです。アプリ内購入メカニズムを使用して追加コンテンツをダウンロードする。カスタム ブラウザー コントロールの構築。ファイルの内容を解析し、1 つのモノリシック ページにまとめます。
誰かが何か考えたり、自分でこれに出くわしたりしていただければ幸いです。