|
|
ProtocolListener
is the listener interface for receiving requests for your own custom
protocol implementations.
Through the ProtocolListener event,
document loading can be controlled. The ProtocolListener is comprised
of the onOpen method that notifies the application upon a request
for the protocol. The ProtocolEvent handles the streaming
of the content into the document through the startRequest(String
contentType), onDataAvailable(byte[ ] data), onStopRequest(int requestStatus).
The custom protocol is registered with the IMozillaBrowserCanvas
using the registerProtocol method. The onOpen method is invoked
when the browser needs to load a resource from a protocol that this
is registered for. This method is always invoked in a new Java thread so
multiple invocations of onOpen can happen simultaneously.
Example
of use the "hello:" protocol
IMozillaBrowserCanvas
browser = BrowserFactory.spawnMozilla(); browser.registerProtocol("hello",new
ProtocolListener() { public
void onOpen(ProtocolEvent e) { String
url = e.getURL(); //Start
Requst with content type text/html e.onStartRequest("text/html");
//Send
the data through, this can be called as many times as needed while
data becomes available e.onDataAvailable(("<B>Hello</B>
World: <EM>" +url.substring(url.indexOf(":")+1,url.length())
+"< /EM>"). getBytes()); //Tell
the browser we are finished and everything went ok. e.onStopRequest(ProtocolEvent.REQUEST_OK);
} });
Loading
the url "hello:John" will show :
Hello
World: John
|