任何人都可以在Windows應用商店(C#/ XAML)上成功添加某種谷歌地圖視圖Windows 8.1?由於Bing Maps許可證的成本(因爲Bing地圖有本地Metro控件,這會更容易),因此我們選擇了Google地圖。Windows應用商店上的谷歌地圖(C#/ XAML) - 無縮放
我能夠關注this article並在WebView控件中包含一個html頁面。我也可以用我的C#類與它通信(使用ScriptNotify和window.external.notify)。
但是,捏縮放手勢不被識別,因爲它不會在地圖上執行縮放。
這裏是我的WebView
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid x:Name="GridOut">
<WebView x:Name="MapWebView" ScrollViewer.HorizontalScrollMode="Disabled" ScrollViewer.VerticalScrollMode="Disabled" ManipulationMode="All" />
</Grid>
</Grid>
而且隨着地圖的html頁面:
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"><head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=10" /> <!-- To get double tap for zoom to work-->
<!– Google Maps API reference –>
<script src="https://maps.googleapis.com/maps/api/js?sensor=false&libraries=visualization"></script>
<script type="text/javascript" src="libs/richmarker.js"></script>
<script type="text/javascript" src="CountryInfo.js"></script>
<script type="text/javascript" src="libs/infobox.js"></script>
<!– map references –>
<link href="map.css" rel="stylesheet" />
<script src="map.js"></script>
</head>
<body>
<div id="mapdisplay" />
</body>
</html>
不過,如果我打開IE裏面(甚至使用IE瀏覽器在Visual Studio中我的HTML頁面模擬器)捏到縮放手勢在那裏,工作順利,所以我認爲問題是與WebView。另一方面,如果我瀏覽我的WebView到這個URL,捏變焦將工作,所以這真的讓我感到困惑。
我也曾嘗試:
1)使用一個額外的HTML頁面內一個IFrame,但它並沒有改變任何東西。
2)實現變焦我自己的JavaScript手勢識別器(帶MSGestureChange),但結果卻是遠遠可取的,我覺得我「重塑一個非常糟糕的車輪」 ......
有沒有人跨越COM這個問題?
在此先感謝。
一兩件事要嘗試可能會增加[-MS-內容縮放(http://msdn.microsoft.com/en-us/library/windows/apps/hh441251.aspx)到地圖腳本。 –
你好,Nate。感謝您的建議。我申請了文檔正文和實際的Map div的CSS,但我沒有注意到任何區別。沒有縮放。我不明白爲什麼在普通瀏覽器上捏縮放工作正常。 – bpires
不幸的是,你可能不走運。 WebView不是一個完整的瀏覽器,它只在文檔模式下呈現頁面。正如你所建議的,你可能需要做的是添加一個手勢識別器。但是,您可以在C#/ Xaml中執行此操作,然後使用ScriptNotify指示JavaScript執行什麼操作。這也會使調試/測試更容易一些。 –