65 lines
2.0 KiB
C#
65 lines
2.0 KiB
C#
using System;
|
|
using Xamarin.Forms;
|
|
|
|
namespace NightFlash
|
|
{
|
|
public class MapAppPage : ContentPage
|
|
{
|
|
// WARNING: when adding latitude/longitude values be careful of localization.
|
|
// European (and other countries) use a comma as the separator, which will break the request
|
|
|
|
public MapAppPage ()
|
|
{
|
|
var l = new Label {
|
|
Text = "These buttons leave the current app and open the built-in Maps app for the platform"
|
|
};
|
|
|
|
var openLocation = new Button {
|
|
Text = "Open location using built-in Maps app"
|
|
};
|
|
openLocation.Clicked += (sender, e) => {
|
|
|
|
if (Device.OS == TargetPlatform.iOS) {
|
|
//https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
|
|
Device.OpenUri(new Uri("http://maps.apple.com/?q=394+Pacific+Ave+San+Francisco+CA"));
|
|
} else if (Device.OS == TargetPlatform.Android) {
|
|
// opens the Maps app directly
|
|
Device.OpenUri(new Uri("geo:0,0?q=394+Pacific+Ave+San+Francisco+CA"));
|
|
|
|
} else if (Device.OS == TargetPlatform.WinPhone) {
|
|
DisplayAlert("To Do", "Not yet implemented", "OK");
|
|
}
|
|
};
|
|
|
|
var openDirections = new Button {
|
|
Text = "Get directions using built-in Maps app"
|
|
};
|
|
openDirections.Clicked += (sender, e) => {
|
|
|
|
if (Device.OS == TargetPlatform.iOS) {
|
|
//https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.html
|
|
Device.OpenUri(new Uri("http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino"));
|
|
|
|
} else if (Device.OS == TargetPlatform.Android) {
|
|
// opens the 'task chooser' so the user can pick Maps, Chrome or other mapping app
|
|
Device.OpenUri(new Uri("http://maps.google.com/?daddr=San+Francisco,+CA&saddr=Mountain+View"));
|
|
|
|
} else if (Device.OS == TargetPlatform.WinPhone) {
|
|
DisplayAlert("To Do", "Not yet implemented", "OK");
|
|
}
|
|
};
|
|
|
|
Content = new StackLayout{
|
|
Padding = new Thickness (5, 20, 5, 0),
|
|
HorizontalOptions = LayoutOptions.Fill,
|
|
Children = {
|
|
l,
|
|
openLocation,
|
|
openDirections
|
|
}
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|