Windows 8 の「モダン」アプリケーション プログラミングを試しています。私がやりたいことは、WinRT WebView コンポーネントを使用して、OpenLayers Web マッピング API によってレンダリングされたマップをホストすることです。
メインの UI コンポーネントとして WebView をホストする小さな "Metro"/C# アプリケーションを作成しました。また、OpenLayers を使用する単純な HTML ページも作成しました。Win8 の IE または Chrome でこの HTML ページを開くと、ページは正しく表示されます。つまり、サンプル マップが表示されます。
「Metro」アプリを実行しても、何も表示されず、エラーも表示も記録もされません。何もない。
WinRT の理解が未熟であるか、HTML に問題があると考えて、単純な WinForms アプリに切り替えました (ただし、両方のブラウザーで表示されるのはなぜか...)。
WinForms アプリを実行すると、エラーが発生します。以下を含むダイアログが表示されます。
「このページのスクリプトでエラーが発生しました。」エラー: 構文エラー URL: about:OpenLayers.js
Google で検索した結果、「 mark of the web 」という Microsoft IE 拡張機能を見つけました(この時点では、「mark of the demon」の方が適切だと思います)。明らかに、IE で「アクティブ コンテンツ」を含む Web ページをホストしたい場合は、HTML コンテンツに、許可されていることを示すマーカーで注釈を付ける必要があります。基本的に、HTML コンテンツの最初の 2048 バイトには、適切にフォーマットされた HTML コメントが含まれている必要があります。
私の状況では、適切な「ウェブのマーク」は次のようになります。
「url=(0014)about:インターネットから保存」
セクションの最初の要素として HTML コメントとして配置しました。
違いはありません。WinForms アプリを実行すると、同じエラーが発生します。もちろん、IE を実行するときはすべて問題ありません。
この問題は、強化された IE セキュリティと関係があります (ここでは詳細を指定しません)。MS は、「アクティブ コンテンツ」を含む Web ページを使用することを非常に困難 (!!!) にしました。特に、Web ページが Web サーバーからフェッチされるのではなく、ローカル キャッシュから表示されている場合です。いくつかの問題に対処するための完全なサイトもあります。
そして、どう進めばいいのか途方に暮れています。「アクティブコンテンツ」を許可するようにIEのセキュリティ設定を変更しようとしました.セキュリティ設定を変更して、または変更せずに「Webのマーク」を使用しました。何も機能していないようです。
それで、SOの誰かがこれに対処した経験がありますか? これは本当に私を当惑させます。