2017-02-13 1 views
1

Ich versuche, URL aus meinem JAVA-Code im Standardbrowser zu öffnen. unten ist mein CodeÖffnen Sie die gleiche Browser-Registerkarte, wenn der Link bereits von Java geöffnet ist

Desktop desktop = Desktop.getDesktop(); 
if(desktop != null){ 
     try { 
      desktop.browse(URI.create(Url)); 
     } catch (IOException err) { 
      err.printStackTrace(); 
     } 
    } 

Aber jedes Mal öffnet es neue Registerkarte sogar für die gleiche URL. Kann ich das irgendwie einschränken? Es sollte die gleiche Registerkarte öffnen, wenn der URI bereits geöffnet ist. Wie kann ich das tun

+1

Aber ich denke nicht, dass das unangemessene Ansatz sein könnte, wenn Sie es für jede "URL" tun. Da es ein Scenario geben kann, müssen Sie verschiedene Bildschirm der gleichen Anwendung in zwei verschiedenen Registerkarten öffnen.Für Beispiel in Fall des Login-Bildschirms, wenn Login-URL eingeben, auch nach dem Login werden Sie auf Standard-URL weitergeleitet wie angewiesen.So kann mir sagen, das Szenario Sie versuchen, diese Logik zu nähern? –

+0

@srikanthr Ich versuche, die manuelle Seite für meine Anwendung im Browser zu laden und ich möchte sie nicht in einem neuen Browser öffnen, wenn sie bereits geöffnet ist. – HardRocker

Antwort

0

Es gibt nichts in der API, die Ihnen eine feinere Kontrolle als "Starten Sie den Standardbrowser und durchsuchen Sie die angegebene URL" gibt.

Die Anfrage von der API geht an den nativen Desktop/Window-Manager, und da der "Standard-Browser" Dutzende von Programmen sein kann (oder sogar nicht existiert) gibt es keine allgemeine Möglichkeit, den Browser zu informieren Passt zu einem vorhandenen Tab/Fenster, wenn es bereits eine bestimmte URL enthält.

Sie können dies möglicherweise für einen bestimmten Browser erreichen, der eine solche API über Interprozesskommunikation bereitstellt, aber es wäre sehr plattform- und browserspezifisch.

Sie könnten auch mit einem Benutzerschnittstellen-Test-Tool untersuchen. Ein mögliches Beispiel ist Selenium, aber es gibt viele andere.

+0

Vielen Dank für Ihr Feedback. aber es wird nicht browserspezifisch sein, aber ich öffne diese URL mit Standardbrowser, der alles sein kann. Auch habe ich nicht verstanden, wenn Sie ein UI-Test-Tool verwenden. Ich verwende den oben genannten Code in meiner Java-Desktop-Anwendung. – HardRocker

Verwandte Themen