electron/docs/api/protocol.md

72 lines
1.8 KiB
Markdown
Raw Normal View History

2013-09-09 07:35:57 +00:00
# protocol
2013-09-03 10:22:40 +00:00
The `protocol` module can register a new protocol or intercept an existing
protocol, so you can custom the response to the requests for vairous protocols.
An example of implementing a protocol that has the same effect with the
`file://` protocol:
```javascript
var protocol = require('protocol');
protocol.registerProtocol('atom', function(request) {
var path = request.url.substr(7)
return new protocol.RequestFileJob(path);
});
```
**Note:** This module can only be used after the `will-finish-launching` event
was emitted.
2013-09-03 10:22:40 +00:00
## protocol.registerProtocol(scheme, handler)
* `scheme` String
* `handler` Function
Registers a custom protocol of `scheme`, the `handler` would be called with
`handler(request)` when the a request with registered `scheme` is made.
You need to return a request job in the `handler` to specify which type of
response you would like to send.
## protocol.unregisterProtocol(scheme)
* `scheme` String
Unregisters the custom protocol of `scheme`.
## protocol.isHandledProtocol(scheme)
* `scheme` String
Returns whether the `scheme` can be handled already.
## protocol.interceptProtocol(scheme, handler)
* `scheme` String
* `handler` Function
Intercepts an existing protocol with `scheme`, returning `null` or `undefined`
in `handler` would use the original protocol handler to handle the request.
## protocol.uninterceptProtocol(scheme)
* `scheme` String
Unintercepts a protocol.
## Class: protocol.RequestFileJob(path)
* `path` String
Create a request job which would query a file of `path` and set corresponding
mime types.
## Class: protocol.RequestStringJob(options)
* `options` Object
* `mimeType` String - Default is `text/plain`
* `charset` String - Default is `UTF-8`
* `data` String
Create a request job which sends a string as response.