I Windows Phone 8 kan man starta en annan app genom att använda speciella länkar. (URI schema name) I en länk är detta som kommer först innan “:”. Ex. contoso:ShowProduct?ID=12
Man måste registrera sin app för att detta skall fungera. Detta gör man i WMAppManifest.xml under taggen Extensions.
<Extensions>
<Protocol Name="trafikofon" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" />
</Extensions>
Här ser vi hur Trafikofon har registrerat ett namn.
Skapa sedan en klass som visar rätt sida när appen startas på det här sättet.
class UriMapper : UriMapperBase
{
private string tempUri;
public override Uri MapUri(Uri uri)
{
tempUri = HttpUtility.UrlDecode(uri.ToString());
if (tempUri.Contains("trafikofon:"))
{
// överför querystring om vi har något
return new Uri("/MainPage.xaml", UriKind.Relative);
}
else
{
return uri;
}
}
}
Registrera denna klass för appen. Det kan göras i App.xaml.cs i dess metod InitializePhoneApplication.
private void InitializePhoneApplication()
{
if (phoneApplicationInitialized)
return;
// Create the frame but don't set it as RootVisual yet; this allows the splash
// screen to remain active until the application is ready to render.
RootFrame = new PhoneApplicationFrame();
RootFrame.Navigated += CompleteInitializePhoneApplication;
RootFrame.UriMapper = new UriMapper();
...
}
För att testa detta så kan man skapa en annan app som endast innehåller en knapp där koden för dess klickhändelse är:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
Launcher.LaunchUriAsync(new System.Uri("trafikofon:nothing"));
}
Mer information om detta finns här
Recent Comments