The Artima Developer Community
Sponsored Link

Java Answers Forum
Client to Browser Communication

2 replies on 1 page. Most recent reply: Nov 5, 2003 1:44 PM by Steve

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 2 replies on 1 page
Steve

Posts: 2
Nickname: steved
Registered: Nov, 2003

Client to Browser Communication Posted: Nov 5, 2003 8:35 AM
Reply to this message Reply
Advertisement
Does anyone know any possibilities for having a process (java program) that is running on a client machine tell an open browser to pull up a given web page?

Basically, I have a call center type intranet app, and whenever a call comes in to a given client machine, I need to pull up a page based on the phone number that the customer is dialing into.

My only thought at this point would be some kind of communication between the client app and an applet residing in the browser. Is this a good solution? Are there any other options?

Any ideas or suggestions would be helpful.


s

Posts: 23
Nickname: codemonkey
Registered: Nov, 2003

Re: Client to Browser Communication Posted: Nov 5, 2003 12:34 PM
Reply to this message Reply
heres how we do it from java apps... of course applets are
a simple matter of calling the AppletContext showDocument
method ....of course you are limited to talking to the server from which the applet was served...Hope that helped
a little ...


/**
* A simple, static class to display a URL in the system browser.
*
* Under Unix, the system browser is hard-coded to be 'netscape'.
* Netscape must be in your PATH for this to work. This has been
* tested with the following platforms: AIX, HP-UX and Solaris.
*
* Under Windows, this will bring up the default browser under windows,
* usually either Netscape or Microsoft IE. The default browser is
* determined by the OS. This has been tested under Windows 95/98/NT.
*
* Examples:
* BrowserControl.displayURL("http://www.javaworld.com")
* BrowserControl.displayURL("file://c:\\docs\\index.html")
* BrowserContorl.displayURL("file:///user/joe/index.html");
*
* Note - you must include the url type -- either "http://" or
* "file://".
*
* This class was taken from
* http://www.javaworld.com/javaworld/javatips/jw-javatip66.html article
* written by Steven Spencer
*
*/
public class BrowserControl
{
// Used to identify the windows platform.
private static final String WIN_ID = "Windows";
// The command for launching a browser in Windows
private static final String WIN_CMD = "cmd /c start";
// The browser to display a url. Should be iexplore or netscape
private static final String WIN_BROWSER = "iexplore";
// The default browser under unix.
private static final String UNIX_PATH = "netscape";
// The flag to display a url.
private static final String UNIX_FLAG = "-remote openURL";

/**
* Display a file in the system browser. If you want to display a
* file, you must include the absolute path name.
*
* @param url the file's url which must start with either "http://" or
* "file://".
*/
public static void displayURL(String url){
boolean windows = isWindowsPlatform();
String cmd = null;
try {
if(windows){
// used to be cmd = 'rundll32 url.dll,FileProtocolHandler http://...'
cmd = WIN_CMD + " " + WIN_BROWSER + " \"" + url + "\"";
Process p = Runtime.getRuntime().exec(cmd);
}
else{
// Under Unix, Netscape has to be running for the "-remote"
// command to work. So, we try sending the command and
// check for an exit value. If the exit command is 0,
// it worked, otherwise we need to start the browser.
// cmd = 'netscape -remote openURL(http://www.javaworld.com)'
// cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ",new-window)";

Process p = Runtime.getRuntime().exec(cmd);
try {
// wait for exit code -- if it's 0, command worked,
// otherwise we need to start the browser up.
int exitCode = p.waitFor();
if (exitCode != 0){
// Command failed, start up the browser
// cmd = 'netscape http://www.javaworld.com'
cmd = UNIX_PATH + " " + url;
p = Runtime.getRuntime().exec(cmd);
}
}
catch(InterruptedException x){
Debug.println("Error bringing up browser, cmd='" +
cmd + "'");
Debug.println("Caught: " + x);
}
}
}
catch(IOException x){
// couldn't exec browser
Debug.println("Could not invoke browser, command=" + cmd);
Debug.println("Caught: " + x);
}
}

/**
* Try to determine whether this application is running under Windows
* or some other platform by examing the "os.name" property.
*
* @return true if this application is running under a Windows OS
*/
private static boolean isWindowsPlatform()
{
boolean isWindows = false;
String os = System.getProperty("os.name");
isWindows = os != null && os.startsWith(WIN_ID);
return isWindows;
}

/**
* Simple example.
*/
public static void main(String[] args)
{
displayURL("http://www.javaworld.com");
}
}

Steve

Posts: 2
Nickname: steved
Registered: Nov, 2003

Re: Client to Browser Communication Posted: Nov 5, 2003 1:44 PM
Reply to this message Reply
This is exactly what I need.

Thanks codemonkey!!

Flat View: This topic has 2 replies on 1 page
Topic: how to dynamically read a very large file? Previous Topic   Next Topic Topic: help with game

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use