2016-07-14 10 views
4

Ich möchte eine URL mit Microsoft Edge in meinem UWP öffnen. Suchen, fand ich diesen Code:C# UWP Web-URL mit Microsoft Edge öffnen

using System.Diagnostics; 
using System.ComponentModel; 

private void button_Help_Click(object sender, RoutedEventArgs e) 
{ 
    Process.Start("microsoft-edge:http://www.bing.com"); 
} 

Aber es zeigt die folgende Fehlermeldung:

The name Process do not exist in the current context

Wenn ich Ctrl +drücken. zeigt es nur Klassenoptionen generieren.

Jede Hilfe wird geschätzt.

Antwort

15

Process.Start ist eine traditionelle Methode in .NET Framework verwendet, die nicht in UWP verwendet werden können Apps direkt. Um Web-URI mit Microsoft Edge in UWP zu öffnen, können wir Launcher.LaunchUriAsync method verwenden. Zum Beispiel:

// The URI to launch 
string uriToLaunch = @"http://www.bing.com"; 

// Create a Uri object from a URI string 
var uri = new Uri(uriToLaunch); 

// Launch the URI 
async void DefaultLaunch() 
{ 
    // Launch the URI 
    var success = await Windows.System.Launcher.LaunchUriAsync(uri); 

    if (success) 
    { 
     // URI launched 
    } 
    else 
    { 
     // URI launch failed 
    } 
} 

Allerdings wird dies den URI mit dem Standard-Webbrowser öffnen. Um es immer mit Microsoft Edge zu öffnen, können wir Launcher.LaunchUriAsync(Uri, LauncherOptions) method mit spezifizierten LauncherOptions.TargetApplicationPackageFamilyName property verwenden. TargetApplicationPackageFamilyName Eigenschaft kann das Zielpaket angeben, das zum Starten einer Datei oder eines URIs verwendet werden soll. Für Microsoft Edge lautet sein Paket Familienname"Microsoft.MicrosoftEdge_8weyb3d8bbwe". Im Folgenden wird ein Beispiel gezeigt, wie dies zu verwenden ist.

// The URI to launch 
string uriToLaunch = @"http://www.bing.com"; 
var uri = new Uri(uriToLaunch); 

async void LaunchWithEdge() 
{ 
    // Set the option to specify the target package 
    var options = new Windows.System.LauncherOptions(); 
    options.TargetApplicationPackageFamilyName = "Microsoft.MicrosoftEdge_8wekyb3d8bbwe"; 

    // Launch the URI 
    var success = await Windows.System.Launcher.LaunchUriAsync(uri, options); 

    if (success) 
    { 
     // URI launched 
    } 
    else 
    { 
     // URI launch failed 
    } 
} 
+0

Vielen Dank, alle Sound-Logik, aber ich weiß nicht, warum ich Störung erhalte:. „Der Typ‚IAsyncAction‘ist in einer Baugruppe definiert, die nicht verwiesen wird, müssen Sie einen Verweis auf Assembly‚hinzuzufügen Windows Version = 255.255.255.255, Culture = neutral, PublicKeyToken = null, ContentType = WindowsRuntime '. " in der Windows.System.Launcher.LaunchUriAsync-Zeile. – Julius

+0

@Julius Dies ist ein seltsamer Fehler. Ich habe den Code in meiner Seite getestet, und es funktioniert gut. Nach ein paar Suchen habe ich ein ähnliches Problem [hier] (https://blogs.msdn.microsoft.com/lucian/2015/05/20/win10-apps-in-net-common-library-issues/) gefunden, Bitte überprüfe ** IAsyncAction ** in diesem Blog. Ich hoffe es hilft. –

+1

Vielen Dank für Ihren Link, in meiner Seite fand ich ähnliche Dinge, sauber zu installieren. – Julius

2

Sie können es tun, aber Microsoft Edge muss Ihr Standardbrowser sein. Sehen Sie den Code unten

private async void launchURI_Click(object sender, RoutedEventArgs e)  
{  
    // The URI to launch 
    var uriBing = new Uri(@"http://www.bing.com"); 

    // Launch the URI 
    var success = await Launcher.LaunchUriAsync(uriBing);    
}