Toon posts:

[java/mustang] browser openen met query via desktop.browse

Pagina: 1
Acties:

Verwijderd

Topicstarter
doel: een lokale html file openen vanuit java in een browser waarbij aan de html file een querystring wordt meegegeven.

probleem: de querystring wordt alleen maar doorgegeven wanneer de html file op een server staat en werkt niet wanneer de file op de harde schijf staat

code:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
desktop = Desktop.getDesktop();
                if (desktop.isSupported(Desktop.Action.BROWSE)) {
                    // launch browser
                    try {

                        String viewer = "/ImageViewer.html?itemNr=3";
                        desktop.browse(new URL("file:///" + System.getProperty("user.dir").replace(" ","%20")+viewer).toURI());


                        desktop.browse(new URI("http://www.myWebsite.com/ImageViewer.html?itemNr=3"));




                    } catch (IOException e) {
                        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    } catch (URISyntaxException e) {
                        e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                    }
                }


Online werkt het dus wel en wordt er netjes de querystring mee opgeroepen. Lokaal echter niet.

  • momania
  • Registratie: Mei 2000
  • Laatst online: 22:03

momania

iPhone 30! Bam!

Die parameters komen ook in je http request.
Aangezien je met file:/// direct een file opent en dus geen http request doen, vallen de parameters weg.

Geen bug maar een 'feature' dus B)

[ Voor 5% gewijzigd door momania op 24-07-2006 17:56 ]

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
Ik heb deze file:/// er net bijgezet om een ander probleem te omzijlen: hij geeft zonder file:/// de volgende error.
code:
1
java.net.MalformedURLException: unknown protocol: c


Dit zou zijn omdat hij alleen maar het eerste karakter herkent van de string "c:\documents and... ". De oplossing is dus niet a, noch b. Wie helpt mij oplossing c vinden?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 15:52

Nick_S

++?????++ Out of Cheese Error

Verwijderd schreef op woensdag 26 juli 2006 @ 10:02:
Ik heb deze file:/// er net bijgezet om een ander probleem te omzijlen: hij geeft zonder file:/// de volgende error.
code:
1
java.net.MalformedURLException: unknown protocol: c


Dit zou zijn omdat hij alleen maar het eerste karakter herkent van de string "c:\documents and... ". De oplossing is dus niet a, noch b. Wie helpt mij oplossing c vinden?
Aangezien je een bestand opent (via protocol file://) en geen webpagina (via protocol http://) zal er inderdaad geen HTTP Request aangemaakt worden.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
Is er een mogelijkheid om toch een lokale html pagina op te vragen met parameter: volgens wat jij zegt is dit onmogelijk, tenzij je de pagina op een lokale webserver laat draaien. Is hier nog een andere work-arround mogelijk?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 15:52

Nick_S

++?????++ Out of Cheese Error

Kun jij eerst aangeven wat je wil bereiken met de parameters in een lokale file. Je webserver (http-protocol) kan "iets" met deze parameters, je fileserver (file-protocol) kan niets met deze parameters voor zover ik weet.

Hoe wil je dit gebruiken?

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
Ik gebruik deze om parameters door te geven aan een flash movie (met als tussenstap javascript).

Via een Java-swing applicatie past de gebruiker een aantal parameters van de flash movie aan die hij dan kan previewen in een browser. Deze parameters worden bewaard in een xml file die flash inleest (hiervoor is geen url nodig). Maar aangezien er in java een 10 componenten zitten die elk verwijzen naar dezelfde flash-movie, alleen moet vervolgens hun index worden meegegeven: "gebruik als bron component 3": dan wordt ?item=3 doorgegeven.

Misschien kan ik lokaal werken als volgt: Java schrijft een xml weg waarin de index wordt gedefinieerd. Als mijn flash movie lokaal draait moet hij het maar uit de index lezen, anders haalt hij het wel uit de query. Nu is dit wel niet echt een mooie oplossing. Voorstellen?

  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 15:52

Nick_S

++?????++ Out of Cheese Error

Schrijf met Java je HTML weg en laat die openen, hierdoor kun je je query parameters al in de HTML file weg werken, zodat ze door Flash gebruikt kunnen worden.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


Verwijderd

Topicstarter
jep zo werkt het.
Pagina: 1