2016-10-30 5 views
0

Javascriptで書かれたUWP Windowsアプリケーションにマップを含める方法はありますか?Javascript UWPアプリケーションのマップコントロールはありますか?

明白なオプション:

  • UWPマップコントロールhttps://msdn.microsoft.com/en-gb/windows/uwp/maps-and-location/controls-map。すべてのドキュメントは、これがXAMLアプリケーションのためだけであることを示唆しています。
  • 従来のWindows/Windows Phone 8.x BingマップSDK https://msdn.microsoft.com/en-us/library/hh846481.aspx;これらは動作しますが、v7.0 AJAXコントロールに基づいており、2017年の作業を停止します。
  • Bing maps AJAX v8.0または他のWebサービス。これらはウェブサイト向けであり、外部でホストされているjavascriptに依存しているため、アプリでは動作しません。

ありがとう。

+1

ここをクリックしてください:https://openlayers.org/ – TheTanic

+0

@TheTanicありがとうございます、興味深いオプションのように見えますが、それは受け入れられた答えに記載されている回避策が必要です。私が '...または他のウェブサービスの質問で言ったように。これらはウェブサイト向けであり、外部でホストされているjavascriptに依存しているので、アプリの修正では機能しません:ああ、これはクライアントがjavascriptでホストしている - 素晴らしい! – anotherfred

+0

私はwinjs uwp app'でopenlayersを使用しています...そしてそれは魅力のように動作します:D試してみてください! – TheTanic

答えて

1

UWP用のJavaScriptマップAPIは組み込まれていません。ただし、Bing Maps V8マップコントロールを使用することはできます。あなたが知っているように、WebView/WebBrowserを使用しないJavaScriptベースのWindowsアプリケーションでは、外部にホストされているJavaScriptファイルの使用を制限しています。これには2つの方法があります。

最初は、iframeの内側にマップコードをホストすることです。マップ機能が完全に含まれていて、主アプリからマップをプログラムで変更する必要はありません(これはほとんどありません)。 UWPアプリでは、メインアプリとJavaScriptコードの間でiframe内で通信することはできません。

2番目は、アプリで開始ページの参照方法を変更し、ローカルコンテキストを使用する代わりにウェブコンテキストを使用することです。これを行うには、package.appxmanifestを開き、開始ページの値の前に "ms-appx-web:///"を追加します。おそらく "ms-appx-web:///index.html"となります。これにより、ファイルシステムへのアクセスなど、JavaScriptベースのUWPアプリケーションの下位レベルの機能の一部をアプリケーションが使用できなくなる可能性があります。これらのシナリオの両方で

、また、次の操作を行います。

  • 以下のコンテンツURIのを追加し、「すべて」にWinRTのアクセス権を設定します。 「https:// .bing.com」および「https:// .virtualearth.com」
  • [機能]で、[ロケーション]を有効にします。それ以外の場合は、マップに表示されるユーザーの場所 ボタンを非表示にします。
  • 一つのマップページ、あなたがページの先頭に以下を追加すること お勧めします。これらのソリューションのどちらもが完璧で

    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">

。 JavaScriptベースのWindows UWPのセキュリティは、多くのユーザーが他の外部ホストWebベースのAPIで経験している主な制限です。この唯一の実際の方法は、JavaScriptアプリケーションをWebブラウザコントロールでホストし、そのコードと.NETコードの間に通信レイヤーを追加し、.NETコードを使用してWindows固有のAPIにアクセスすることです、あなたはまさにこれを行うApache Cordovaを使用するかもしれません。

+0

これらの回避策に代わるものがあるかもしれません - クライアントがbingマップ用の第三者javascriptライブラリをホストすることを示唆する上記のコメントを見てください(私は理解しています) – anotherfred

関連する問題