electron/docs-translations/jp/api/protocol.md
Takahito Yamatoya ab8e6650bd 📝Add Japanes translated docs.
[ci skip]
2016-01-26 18:17:42 +09:00

6.7 KiB

protocol

protocolモジュールはカスタムプロトコルを登録したり、または既存のプロトコルをインターセプタ―することができます。

file://プロトコルの同様の効果をもつプロトコルを実装した例です。

const electron = require('electron');
const app = electron.app;
const path = require('path');

app.on('ready', function() {
    var protocol = electron.protocol;
    protocol.registerFileProtocol('atom', function(request, callback) {
      var url = request.url.substr(7);
      callback({path: path.normalize(__dirname + '/' + url)});
    }, function (error) {
      if (error)
        console.error('Failed to register protocol')
    });
});

Note: このモジュールは、appモジュールでreadyイベントが出力された後のみ使うことができます。

メソッド

protocolモジュールは、次のメソッドを持ちます。

protocol.registerStandardSchemes(schemes)

  • schemes Array - 標準的なスキーマーを登録するためのカスタムスキーマー

標準的なschemeは、RFC 3986で策定しているgeneric URI syntaxに準拠しています。これにはfile:filesystem:を含んでいます。

protocol.registerServiceWorkerSchemes(schemes)

  • schemes Array - サービスワーカーをハンドルするために登録されたカスタムスキーマー

protocol.registerFileProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

レスポンスとしてファイルを送信するschemeのプロトコルを登録します。schemerequestが生成された時、handlerhandler(request, callback)で呼び出されます。scheme 登録が成功したり、completion(error)が失敗したときに、completioncompletion(null)で呼び出されます。

requestをハンドルするために、callbackはファイルパスまたはpathプロパティを持つオブジェクトで呼び出すべきです。例えば、callback(filePath) またはcallback({path: filePath})です。

何もなし、数字、errorプロパティを持つオブジェクトで、callbackが呼び出された時、 requestは指定したerror番号で失敗します。使用できる提供されているエラー番号は、net error listを参照してください。

既定では、schemeは、file:のような一般的なURIの構文に続くプロトコルと違う解析がされ、http:のように扱われます。なので、恐らく標準的なスキーマーのように扱われるスキーマーを持つために、protocol.registerStandardSchemes を呼び出したくなります。

protocol.registerBufferProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

レスポンスとしてBufferを送信するschemeプロトコルを登録します。callbackは、BufferオブジェクトまたはdatamimeTypechartプロパティを持つオブジェクトを呼び出す必要があります。

例:

protocol.registerBufferProtocol('atom', function(request, callback) {
  callback({mimeType: 'text/html', data: new Buffer('<h5>Response</h5>')});
}, function (error) {
  if (error)
    console.error('Failed to register protocol')
});

protocol.registerStringProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

レスポンスとしてStringを送信するschemeプロトコルを登録します。callbackは、StringまたはdatamimeTypechartプロパティを持つオブジェクトを呼び出す必要があります。

protocol.registerHttpProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

レスポンスとしてHTTPリクエストを送信するschemeプロトコルを登録します。callbackは、urlmethodreferreruploadDatasessionプロパティを持つオブジェクトを呼び出す必要があります。

既定では、HTTPリクエストは現在のセッションを再利用します。別のセッションでリクエストをしたい場合、sessionnullを設定する必要があります。

POSTリクエストはuploadDataオブジェクトを提供する必要があります。

  • uploadData object
    • contentType String - コンテンツのMIMEタイプ
    • data String - 送信されるコンテンツ

protocol.unregisterProtocol(scheme[, completion])

  • scheme String
  • completion Function (optional)

schemeのカスタムプロトコルを解除します。

protocol.isProtocolHandled(scheme, callback)

  • scheme String
  • callback Function

schemeのハンドラーがあるかないかを示すブーリアン値でcallbackがコールされます。

protocol.interceptFileProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

schemeプロトコルをインターセプタ―し、レスポンスとしてファイルを送信するプロトコルの新しいハンドラーとしてhandlerを使います。

protocol.interceptStringProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

schemeプロトコルをインターセプタ―し、レスポンスとしてStringを送信するプロトコルの新しいハンドラーとしてhandlerを使います。

protocol.interceptBufferProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

schemeプロトコルをインターセプタ―し、レスポンスとしてBufferを送信するプロトコルの新しいハンドラーとしてhandlerを使います。

protocol.interceptHttpProtocol(scheme, handler[, completion])

  • scheme String
  • handler Function
  • completion Function (optional)

schemeプロトコルをインターセプタ―し、レスポンスとして新しいHTTPリクエストを送信するプロトコルの新しいハンドラーとしてhandlerを使います。

Intercepts scheme protocol and uses handler as the protocol's new handler which sends a new HTTP request as a response.

protocol.uninterceptProtocol(scheme[, completion])

  • scheme String
  • completion Function

インターセプタ―したインストールされたschemeを削除し、オリジナルハンドラーをリストアします。