2013-03-22 42 views
5

Tarayıcım (webview) bir HTML sayfasıalgıla vekil - JavaFX - webview

FILEJAVA.class.getResource ("FILEHTML.html") ile başlar. ToExternalForm() Ben google erişmek zaman

, ben tarayıcı çek, ağ vekil varsa (proxy'm çalışma manuel)

Yani tarayıcı Kullanıcı adını girmek için bir iletişim kutusu gösterir olmadığını bilmek istiyorum ve parola.

cevap

2

Proxy'yi kontrol etmek için ProxySelector kullanabilirsiniz. Bir sonraki örneğe bakın:

public class DetectProxy extends Application { 

    private Pane root; 

    @Override 
    public void start(final Stage stage) throws URISyntaxException { 
     root = new VBox(); 

     List<Proxy> proxies = ProxySelector.getDefault().select(new URI("http://google.com")); 
     final Proxy proxy = proxies.get(0); // ignoring multiple proxies to simplify code snippet 
     if (proxy.type() != Proxy.Type.DIRECT) { 
      // you can change that to dialog using separate Stage 
      final TextField login = new TextField("login"); 
      final PasswordField pwd = new PasswordField(); 
      Button btn = new Button("Submit"); 
      btn.setOnAction(new EventHandler<ActionEvent>() { 
       @Override 
       public void handle(ActionEvent t) { 
        System.setProperty("http.proxyUser", login.getText()); 
        System.setProperty("http.proxyPassword", pwd.getText()); 
        showWebView(); 
       } 
      }); 
      root.getChildren().addAll(login, pwd, btn); 
     } else { 
      showWebView(); 
     } 

     stage.setScene(new Scene(root, 600, 600)); 
     stage.show(); 
    } 

    private void showWebView() { 
     root.getChildren().clear(); 
     WebView webView = new WebView(); 

     final WebEngine webEngine = webView.getEngine(); 
     root.getChildren().addAll(webView); 
     webEngine.load("http://google.com"); 

    } 

    public static void main(String[] args) { 
     launch(); 
    } 
} 

yetkilendirilmesi, bazı durumlarda ek kod gerektiren ayrıntılar için Authenticated HTTP proxy with Java görebilirsiniz.