2012-12-12 8 views
8

Mit einer lokalen Client-Seite Anwendung, mitHolen Sie sich den Standard-Browser des aktuellen Betriebssystems und öffnen Sie eine Webseite damit?

import 'dart:io'; 

sehe ich keine Möglichkeit, die Verbraucher aktuellen Standard-Browser zu laden und dann eine Webseite zu laden. (Lokal gespeicherter HTML-Code oder eine Website)

Ich habe die API-Dokumentation unter http://api.dartlang.org gesucht, habe aber keinen einfachen Weg gefunden.

Gibt es eine Möglichkeit, dies noch zu tun? Vorzugsweise ähnlich wie die Desktop class in java?

Antwort

5

Ich glaube nicht, dass es eine Funktion dafür gibt. Sie können eine füllen. Wenn Sie eine Problemumgehung benötigen, können Sie mit den Klassen Process und Platform umgehen.

  • unter Windows sollten Sie launch the default browser mit start ${url} können.
  • auf Linux können Sie do that mit xdg-open ${url}, wenn xdg-open vorhanden ist.
  • in anderen Fällen soll es eine Lösung sein ...

ist hier ein Beispiel:

import 'dart:io'; 

main() { 
    final url = "http://dartlang.org"; 
    if (Platform.operatingSystem == 'windows') { 
    Process.run("start", [url]); 
    } else if (Platform.operatingSystem == 'linux') { 
    Process.run("xdg-open", [url]); 
    } 
} 
+0

Danke für die Probe, sehr hilfreich. – Mourner63

+0

Ich stimme zu, es wäre toll, wenn Sie eine Feature-Anfrage auf dartbug.com eingereicht hätten. Wenn Sie dies tun, fügen Sie hier einen Link hinzu. –

+0

Erstellt das Problem, war nicht sicher über das Format, aber ich bin mir sicher, dass die intelligenten Dartisans wird es verstehen. Das Problem ist http://dartbug.com/7402 – Mourner63

0

Auf Windows finde ich die runInShell Flag gesetzt werden muss:

Process.run("start", [url], runInShell: true); 

(zumindest unter Windows 7).

Ich bin überrascht, dass jemand kein Paket erstellt hat, um den Standard-Browser auf allen Plattformen zuverlässig aufzurufen.

Verwandte Themen