Merge remote-tracking branch 'refs/remotes/atom/master'
This commit is contained in:
commit
cc841242b5
55 changed files with 1164 additions and 181 deletions
|
@ -1,71 +1,82 @@
|
|||
Por favor, certifique-se de que está utilizando a documentação que corresponde à sua versão do Electron.
|
||||
O número da versão deve ser uma parte da URL da página. Se não for, você provavelmente está utilizando
|
||||
a documentação de um branch de desenvolvimento que pode conter mudanças na API que não são compatíveis
|
||||
com a sua versão do Electron. Se este for o caso, você pode mudar para uma versão diferente da
|
||||
documentação na lista de [versões disponíveis](http://electron.atom.io/docs/) em atom.io,
|
||||
ou se você estiver usando a interface do GitHub, abra o *dropdown* "Switch branches/tags" e
|
||||
selecione a *tag* que corresponde à sua versão.
|
||||
|
||||
## Guias
|
||||
|
||||
* [Platformas Suportadas](../../tutorial/supported-platforms.md)
|
||||
* [Distribuição de Aplicações](tutorial/application-distribution.md)
|
||||
* [Empacotamento da aplicação](tutorial/application-packaging.md)
|
||||
* [Usando módulos nativos](tutorial/using-native-node-modules.md)
|
||||
* [Depuração do processo principal](tutorial/debugging-main-process.md)
|
||||
* [Guia de Submissão da Mac App Store](../../tutorial/mac-app-store-submission-guide.md)
|
||||
* [Empacotamento da Aplicação](tutorial/application-packaging.md)
|
||||
* [Usando Módulos Nativos do Node](tutorial/using-native-node-modules.md)
|
||||
* [Depuração do Processo Principal](tutorial/debugging-main-process.md)
|
||||
* [Usando Selenium e WebDriver](../../docs/tutorial/using-selenium-and-webdriver.md)
|
||||
* [Extensão DevTools](../../docs/tutorial/devtools-extension.md)
|
||||
* [Usando o plugin papper flash](tutorial/using-pepper-flash-plugin.md)
|
||||
* [Usando o Plugin Pepper Flash](tutorial/using-pepper-flash-plugin.md)
|
||||
|
||||
## Tutoriais
|
||||
|
||||
* [Introdução](tutorial/quick-start.md)
|
||||
* [A integração com o ambiente de desenvolvimento](tutorial/desktop-environment-integration.md)
|
||||
* [Evento de detecção on-line/off-line](tutorial/online-offline-events.md)
|
||||
* [Integração com o Ambiente de Desenvolvimento](tutorial/desktop-environment-integration.md)
|
||||
* [Evento de Detecção Online/Offline](tutorial/online-offline-events.md)
|
||||
|
||||
## API - Referencias
|
||||
## API - Referências
|
||||
|
||||
* [Sinopse](../../docs/api/synopsis.md)
|
||||
* [Processos](api/process.md)
|
||||
* [Aceleradores (Teclas de Atalho)](api/accelerator.md)
|
||||
* [Parâmetros CLI suportados (Chrome)](../../docs/api/chrome-command-line-switches.md)
|
||||
* [Variáveis de Ambiente](../../docs/api/environment-variables.md)
|
||||
|
||||
DOM elementos personalizados:
|
||||
### Elementos DOM Personalizados:
|
||||
|
||||
* [Objeto `File`](../../docs/api/file-object.md)
|
||||
* [Tag `<webview>`](../../docs/api/web-view-tag.md)
|
||||
* [Função `window.open`](../../docs/api/window-open.md)
|
||||
|
||||
Os principais módulos:
|
||||
### Módulos para o Processo Principal:
|
||||
|
||||
* [app](../../docs/api/app.md)
|
||||
* [auto-updater](../../docs/api/auto-updater.md)
|
||||
* [browser-window](../../docs/api/browser-window.md)
|
||||
* [content-tracing](../../docs/api/content-tracing.md)
|
||||
* [app](api/app.md)
|
||||
* [autoUpdater](api/auto-updater.md)
|
||||
* [BrowserWindow](../../docs/api/browser-window.md)
|
||||
* [contentTracing](../../docs/api/content-tracing.md)
|
||||
* [dialog](../../docs/api/dialog.md)
|
||||
* [global-shortcut](../../docs/api/global-shortcut.md)
|
||||
* [ipc (main process)](../../docs/api/ipc-main-process.md)
|
||||
* [menu](../../docs/api/menu.md)
|
||||
* [menu-item](../../docs/api/menu-item.md)
|
||||
* [power-monitor](../../docs/api/power-monitor.md)
|
||||
* [power-save-blocker](../../docs/api/power-save-blocker.md)
|
||||
* [globalShortcut](../../docs/api/global-shortcut.md)
|
||||
* [ipcMain](../../docs/api/ipc-main-process.md)
|
||||
* [Menu](../../docs/api/menu.md)
|
||||
* [MenuItem](../../docs/api/menu-item.md)
|
||||
* [powerMonitor](../../docs/api/power-monitor.md)
|
||||
* [powerSaveBlocker](../../docs/api/power-save-blocker.md)
|
||||
* [protocol](../../docs/api/protocol.md)
|
||||
* [session](../../docs/api/session.md)
|
||||
* [webContents](../../docs/api/web-contents.md)
|
||||
* [tray](../../docs/api/tray.md)
|
||||
* [Tray](../../docs/api/tray.md)
|
||||
|
||||
Módulos do renderizador (web page):
|
||||
### Módulos para o Processo Renderizador:
|
||||
|
||||
* [ipc (renderer)](../../docs/api/ipc-renderer.md)
|
||||
* [ipcRenderer](../../docs/api/ipc-renderer.md)
|
||||
* [remote](../../docs/api/remote.md)
|
||||
* [web-frame](../../docs/api/web-frame.md)
|
||||
* [webFrame](../../docs/api/web-frame.md)
|
||||
|
||||
Módulos de ambos os processos:
|
||||
### Módulos para ambos os processos:
|
||||
|
||||
* [clipboard](../../docs/api/clipboard.md)
|
||||
* [crash-reporter](../../docs/api/crash-reporter.md)
|
||||
* [native-image](../../docs/api/native-image.md)
|
||||
* [crashReporter](../../docs/api/crash-reporter.md)
|
||||
* [nativeImage](../../docs/api/native-image.md)
|
||||
* [screen](../../docs/api/screen.md)
|
||||
* [shell](api/shell.md)
|
||||
|
||||
## Desenvolvimento
|
||||
|
||||
* [Estilo de código](../../docs/development/coding-style.md)
|
||||
* [Estrutura de diretórios padrão](../../docs/development/source-code-directory-structure.md)
|
||||
* [Diferenças técnicas do NW.js (antigo node-webkit)](../../docs/development/atom-shell-vs-node-webkit.md)
|
||||
* [Visão geral do build](../../docs/development/build-system-overview.md)
|
||||
* [Instrução de build (Mac)](../../docs/development/build-instructions-osx.md)
|
||||
* [Instrução de build (Windows)](../../docs/development/build-instructions-windows.md)
|
||||
* [Instrução de build (Linux)](../../docs/development/build-instructions-linux.md)
|
||||
* [Configurando um symbol server no debugger](../../docs/development/setting-up-symbol-server.md)
|
||||
* [Estilo de Código](development/coding-style.md)
|
||||
* [Estrutura de Diretórios de Código Fonte](../../docs/development/source-code-directory-structure.md)
|
||||
* [Diferenças Técnicas do NW.js (antigo node-webkit)](../../docs/development/atom-shell-vs-node-webkit.md)
|
||||
* [Visão Geral do Build](../../docs/development/build-system-overview.md)
|
||||
* [Instrução de Build (Mac)](../../docs/development/build-instructions-osx.md)
|
||||
* [Instrução de Build (Windows)](../../docs/development/build-instructions-windows.md)
|
||||
* [Instrução de Build (Linux)](../../docs/development/build-instructions-linux.md)
|
||||
* [Configurando um Symbol Server no Debugger](../../docs/development/setting-up-symbol-server.md)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Acelerador (teclas de atalhos)
|
||||
|
||||
Um acelerador é uma string que representa um atalho de tecla. Isso pode conter
|
||||
multiplos modificadores e códigos chaves, combinado pelo caracter `+`.
|
||||
Um acelerador é uma string que representa um atalho de tecla. Ele pode conter
|
||||
múltiplos modificadores e códigos chaves, combinados pelo caractere `+`.
|
||||
|
||||
Exemplos:
|
||||
|
||||
|
@ -11,13 +11,13 @@ Exemplos:
|
|||
## Aviso sobre plataformas
|
||||
|
||||
No Linux e no Windows a tecla `Command` não tem nenhum efeito,
|
||||
então use `CommandOrControl` que representa a tecla `Command` existente no OSX e
|
||||
então use `CommandOrControl` que representa a tecla `Command` existente no OS X e
|
||||
`Control` no Linux e no Windows para definir aceleradores (atalhos).
|
||||
|
||||
A chave `Super` está mapeada para a tecla `Windows` para Windows e Linux,
|
||||
e para a tecla `Cmd` para OSX.
|
||||
e para a tecla `Cmd` para OS X.
|
||||
|
||||
## Modificadores disponiveis
|
||||
## Modificadores disponíveis
|
||||
|
||||
* `Command` (ou `Cmd` abreviado)
|
||||
* `Control` (ou `Ctrl` abreviado)
|
||||
|
@ -26,21 +26,21 @@ e para a tecla `Cmd` para OSX.
|
|||
* `Shift`
|
||||
* `Super`
|
||||
|
||||
## Códigos chaves disponiveis
|
||||
## Códigos chaves disponíveis
|
||||
|
||||
* `0` to `9`
|
||||
* `A` to `Z`
|
||||
* `F1` to `F24`
|
||||
* Punctuations like `~`, `!`, `@`, `#`, `$`, etc.
|
||||
* `0` até `9`
|
||||
* `A` até `Z`
|
||||
* `F1` até `F24`
|
||||
* Pontuações como `~`, `!`, `@`, `#`, `$`, etc.
|
||||
* `Plus`
|
||||
* `Space`
|
||||
* `Backspace`
|
||||
* `Delete`
|
||||
* `Insert`
|
||||
* `Return` (or `Enter` as alias)
|
||||
* `Up`, `Down`, `Left` and `Right`
|
||||
* `Home` and `End`
|
||||
* `PageUp` and `PageDown`
|
||||
* `Escape` (or `Esc` for short)
|
||||
* `VolumeUp`, `VolumeDown` and `VolumeMute`
|
||||
* `MediaNextTrack`, `MediaPreviousTrack`, `MediaStop` and `MediaPlayPause`
|
||||
* `Return` (ou `Enter` como pseudônimo)
|
||||
* `Up`, `Down`, `Left` e `Right`
|
||||
* `Home` e `End`
|
||||
* `PageUp` e `PageDown`
|
||||
* `Escape` (ou `Esc` abreviado)
|
||||
* `VolumeUp`, `VolumeDown` e `VolumeMute`
|
||||
* `MediaNextTrack`, `MediaPreviousTrack`, `MediaStop` e `MediaPlayPause`
|
||||
|
|
452
docs-translations/pt-BR/api/app.md
Normal file
452
docs-translations/pt-BR/api/app.md
Normal file
|
@ -0,0 +1,452 @@
|
|||
# app
|
||||
|
||||
O módulo `app` é responsável por controlar o ciclo de vida do aplicativo.
|
||||
|
||||
O exemplo a seguir mostra como fechar o aplicativo quando a última janela é fechada:
|
||||
|
||||
```javascript
|
||||
const app = require('electron').app;
|
||||
app.on('window-all-closed', function() {
|
||||
app.quit();
|
||||
});
|
||||
```
|
||||
|
||||
## Eventos
|
||||
|
||||
O objeto `app` emite os seguintes eventos:
|
||||
|
||||
### Evento: 'will-finish-launching'
|
||||
|
||||
Emitido quando o aplicativo finaliza a inicialização básica. No Windows e no Linux,
|
||||
o evento `will-finish-launching` é o mesmo que o evento `ready`; No OS X,
|
||||
esse evento representa a notificação `applicationWillFinishLaunching` do `NSApplication`.
|
||||
Normalmente aqui seriam criados *listeners* para os eventos `open-file` e `open-url`, e inicializar o *crash reporter* e atualizador automático.
|
||||
|
||||
Na maioria dos casos, você deve fazer tudo no manipulador de eventos do `ready`.
|
||||
|
||||
### Evento: 'ready'
|
||||
|
||||
Emitido quando o Electron finaliza a inicialização.
|
||||
|
||||
### Evento: 'window-all-closed'
|
||||
|
||||
Emitido quando todas as janelas forem fechadas.
|
||||
|
||||
Este evento só é emitido quando o aplicativo não for fechar. Se o
|
||||
usuário pressionou`Cmd + Q`, ou o desenvolvedor chamou `app.quit()`,
|
||||
o Electron tentará primeiro fechar todas as janelas e então emitir o
|
||||
evento `will-quit`, e neste caso o evento `window-all-closed` não
|
||||
seria emitido.
|
||||
|
||||
### Evento: 'before-quit'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
|
||||
Emitido antes que o aplicativo comece a fechar suas janelas.
|
||||
Chamar `event.preventDefault()` irá impedir o comportamento padrão,
|
||||
que é terminar o aplicativo.
|
||||
|
||||
### Evento: 'will-quit'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
|
||||
Emitido quando todas as janelas foram fechadas e o aplicativo irá finalizar.
|
||||
Chamar `event.preventDefault()` irá impedir o comportamento padrão,
|
||||
que é terminar o aplicativo.
|
||||
|
||||
Veja a descrição do evento `window-all-closed` para as diferenças entre o
|
||||
evento `will-quit` e `window-all-closed`.
|
||||
|
||||
### Evento: 'quit'
|
||||
|
||||
Emitido quando o aplicativo está finalizando.
|
||||
|
||||
### Evento: 'open-file' _OS X_
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `path` String
|
||||
|
||||
Emitido quando o usuário deseja abrir um arquivo com o aplicativo. O evento
|
||||
`open-file` normalmente é emitido quando o aplicativo já está aberto e o S.O.
|
||||
quer reutilizar o aplicativo para abrir o arquivo. `open-file` também é emitido
|
||||
quando um arquivo é jogado no *dock* e o aplicativo ainda não está rodando.
|
||||
Certifique-se de utilizar um *listener* para o evento `open-file` cedo na
|
||||
inicialização do seu aplicativo para cuidar deste caso (antes mesmo do evento
|
||||
`ready` ser emitido).
|
||||
|
||||
Você deve chamar `event.preventDefault()` se quiser cuidar deste caso.
|
||||
|
||||
No Windows, você deve fazer o *parse* do `process.argv` para pegar o
|
||||
endereço do arquivo.
|
||||
|
||||
### Evento: 'open-url' _OS X_
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `url` String
|
||||
|
||||
Emitido quando o usuário deseja abrir uma URL com o aplicativo. O esquema deve
|
||||
ser registrado para ser aberto pelo seu aplicativo.
|
||||
|
||||
Você deve chamar `event.preventDefault()` se quiser cuidar deste caso.
|
||||
|
||||
### Evento: 'activate' _OS X_
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `hasVisibleWindows` Boolean
|
||||
|
||||
Emitido quando o aplicativo é ativado, que normalmente acontece quando o ícone
|
||||
do aplicativo no *dock* é clicado.
|
||||
|
||||
### Evento: 'browser-window-blur'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `window` BrowserWindow
|
||||
|
||||
Emitido quando uma [browserWindow](../../../docs/api/browser-window.md) fica embaçada.
|
||||
|
||||
### Evento: 'browser-window-focus'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `window` BrowserWindow
|
||||
|
||||
Emitido quando uma [browserWindow](../../../docs/api/browser-window.md) é focada.
|
||||
|
||||
### Evento: 'browser-window-created'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `window` BrowserWindow
|
||||
|
||||
Emitido quando uma nova [browserWindow](../../../docs/api/browser-window.md) é criada.
|
||||
|
||||
### Evento: 'certificate-error'
|
||||
|
||||
Returns:
|
||||
|
||||
* `event` Event
|
||||
* `webContents` [WebContents](../../../docs/api/web-contents.md)
|
||||
* `url` URL
|
||||
* `error` String - O código de erro
|
||||
* `certificate` Object
|
||||
* `data` Buffer - dados codificados PEM
|
||||
* `issuerName` String
|
||||
* `callback` Function
|
||||
|
||||
Emitido quando há uma falha na verificação do `certificate` para a `url`,
|
||||
para confiar no certificado, você deve impedir o comportamento padrão com
|
||||
`event.preventDefault()` e chamar `callback(true)`.
|
||||
|
||||
```javascript
|
||||
session.on('certificate-error', function(event, webContents, url, error, certificate, callback) {
|
||||
if (url == "https://github.com") {
|
||||
// Lógica de verificação.
|
||||
event.preventDefault();
|
||||
callback(true);
|
||||
} else {
|
||||
callback(false);
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
### Evento: 'select-client-certificate'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `webContents` [WebContents](../../../docs/api/web-contents.md)
|
||||
* `url` URL
|
||||
* `certificateList` [Objects]
|
||||
* `data` Buffer - dados codificados PEM
|
||||
* `issuerName` String - Nome Comum do Emissor
|
||||
* `callback` Function
|
||||
|
||||
Emitido quando um certificado de cliente é requisitado.
|
||||
|
||||
A `url` corresponde à entrada de navegação requisitando o certificado do
|
||||
cliente e `callback` precisa ser chamada com uma entrada filtrada da lista.
|
||||
Usar `event.preventDefault()` impede o aplicativo de usar o primeiro certificado
|
||||
da memória.
|
||||
|
||||
```javascript
|
||||
app.on('select-client-certificate', function(event, webContents, url, list, callback) {
|
||||
event.preventDefault();
|
||||
callback(list[0]);
|
||||
})
|
||||
```
|
||||
|
||||
### Evento: 'login'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `webContents` [WebContents](../../../docs/api/web-contents.md)
|
||||
* `request` Object
|
||||
* `method` String
|
||||
* `url` URL
|
||||
* `referrer` URL
|
||||
* `authInfo` Object
|
||||
* `isProxy` Boolean
|
||||
* `scheme` String
|
||||
* `host` String
|
||||
* `port` Integer
|
||||
* `realm` String
|
||||
* `callback` Function
|
||||
|
||||
Emitido quando `webContents` deseja fazer autenticação básica.
|
||||
|
||||
O comportamento padrão é cancelar todas as autenticações, para sobrescrever
|
||||
isto, você deve impedir esse comportamento com `event.preventDefault()` e
|
||||
chamar `callback(username, password)` com as credenciais.
|
||||
|
||||
```javascript
|
||||
app.on('login', function(event, webContents, request, authInfo, callback) {
|
||||
event.preventDefault();
|
||||
callback('username', 'secret');
|
||||
})
|
||||
```
|
||||
|
||||
### Evento: 'gpu-process-crashed'
|
||||
|
||||
Emitido quando o processo da gpu falha.
|
||||
|
||||
## Métodos
|
||||
|
||||
O objeto `app` possui os seguintes métodos:
|
||||
|
||||
**Nota:** Alguns métodos só estão disponíveis em sistemas operacionais específicos e estão rotulados como tal.
|
||||
|
||||
### `app.quit()`
|
||||
|
||||
Tente fechar todas as janelas. O evento `before-quit` será emitido primeiro. Se todas
|
||||
as janelas fecharem com sucesso, o evento `will-quit` será emitido e por padrão o
|
||||
aplicativo irá terminar.
|
||||
|
||||
Este método garante que todos os manipuladores de evento `beforeunload` e `unload`
|
||||
sejam corretamente executados. É possível que uma janela cancele o processo de
|
||||
encerramento ao retornar `false` no manipulador de evento `beforeunload`.
|
||||
|
||||
### `app.exit(exitCode)`
|
||||
|
||||
* `exitCode` Integer
|
||||
|
||||
Finaliza imediatamente com `exitCode`.
|
||||
|
||||
Todas as janelas serão fechadas imediatamente sem perguntar ao usuário, e os eventos
|
||||
`before-quit` e `will-quit` não serão emitidos.
|
||||
|
||||
### `app.getAppPath()`
|
||||
|
||||
Retorna o atual diretório do aplicativo.
|
||||
|
||||
### `app.getPath(name)`
|
||||
|
||||
* `name` String
|
||||
|
||||
Retorna um endereço para um diretório especial ou arquivo associado com `nome`.
|
||||
Numa falha um `Error` é lançado.
|
||||
|
||||
Você pode requisitar os seguintes endereços pelo nome:
|
||||
|
||||
* `home` Diretório *home* do usuário.
|
||||
* `appData` Diretório de dados do aplicativo por usuário, que por padrão aponta para:
|
||||
* `%APPDATA%` no Windows
|
||||
* `$XDG_CONFIG_HOME` ou `~/.config` no Linux
|
||||
* `~/Library/Application Support` no OS X
|
||||
* `userData` O diretório para guardar os arquivos de configuração do seu aplicativo, que por padrão é o diretório `appData` concatenado com o nome do seu aplicativo.
|
||||
* `temp` Diretório temporário.
|
||||
* `exe` O arquivo executável atual.
|
||||
* `module` A biblioteca `libchromiumcontent`.
|
||||
* `desktop` O diretório *Desktop* do usuário atual.
|
||||
* `documents` Diretório "Meus Documentos" do usuário.
|
||||
* `downloads` Diretório dos downloads do usuário.
|
||||
* `music` Diretório de músicas do usuário.
|
||||
* `pictures` Diretório de imagens do usuário.
|
||||
* `videos` Diretório de vídeos do usuário.
|
||||
|
||||
### `app.setPath(name, path)`
|
||||
|
||||
* `name` String
|
||||
* `path` String
|
||||
|
||||
Sobrescreve o `path` para um diretório especial ou arquivo associado com `name`.
|
||||
Se o endereço especifica um diretório não existente, o diretório será criado por
|
||||
este método. Numa falha um `Error` é lançado.
|
||||
|
||||
Você pode sobrescrever apenas endereços com um `name` definido em `app.getPath`.
|
||||
|
||||
Por padrão, *cookies* e *caches* de páginas web serão guardadas no diretório `userData`. Se você quiser mudar esta localização, você deve sobrescrever o
|
||||
endereço `userData` antes que o evento `ready` do módulo `app` seja emitido.
|
||||
|
||||
### `app.getVersion()`
|
||||
|
||||
Retorna a versão do aplicativo carregado. Se nenhuma versão for encontrada no
|
||||
arquivo `package.json` do aplicativo, a versão do pacote ou executável atual é
|
||||
retornada.
|
||||
|
||||
### `app.getName()`
|
||||
|
||||
Retorna o nome do aplicativo atual, que é o nome no arquivo `package.json` do
|
||||
aplicativo.
|
||||
|
||||
Normalmente o campo `name` do `package.json` é um nome curto em letras minúsculas,
|
||||
de acordo com as especificações de módulos npm. Normalmente você deve também
|
||||
especificar um campo `productName`, que é o nome completo em letras maiúsculas do
|
||||
seu aplicativo, e que será preferido ao `name` pelo Electron.
|
||||
|
||||
### `app.getLocale()`
|
||||
|
||||
Retorna a localidade atual do aplicativo.
|
||||
|
||||
### `app.addRecentDocument(path)` _OS X_ _Windows_
|
||||
|
||||
* `path` String
|
||||
|
||||
Adiciona `path` à lista de documentos recentes.
|
||||
|
||||
Esta lista é gerenciada pelo S.O.. No Windows você pode visitar a lista pela
|
||||
barra de tarefas, e no OS X você pode visita-la pelo *dock*.
|
||||
|
||||
### `app.clearRecentDocuments()` _OS X_ _Windows_
|
||||
|
||||
Limpa a lista de documentos recentes.
|
||||
|
||||
### `app.setUserTasks(tasks)` _Windows_
|
||||
|
||||
* `tasks` Array - Vetor de objetos `Task`
|
||||
|
||||
Adiciona `tasks` à categoria [Tasks][tasks] do JumpList no Windows.
|
||||
|
||||
`tasks` é um vetor de objetos `Task` no seguinte formato:
|
||||
|
||||
`Task` Object
|
||||
* `program` String - Endereço do programa a ser executado, normalmente você deve especificar `process.execPath` que abre o programa atual.
|
||||
* `arguments` String - Os argumentos de linha de comando quando `program` é executado.
|
||||
* `title` String - A string a ser exibida em uma JumpList.
|
||||
* `description` String - Descrição desta *task*.
|
||||
* `iconPath` String - O endereço absoluto para um ícone a ser exibido em uma JumpList, que pode ser um arquivo arbitrário que contém um ícone. Normalmente você pode especificar `process.execPath` para mostrar o ícone do programa.
|
||||
* `iconIndex` Integer - O índice do ícone do arquivo do icone. Se um arquivo de ícone consiste de dois ou mais ícones, defina este valor para identificar o ícone. Se o arquivo de ícone consiste de um ícone apenas, este valor é 0.
|
||||
|
||||
### `app.allowNTLMCredentialsForAllDomains(allow)`
|
||||
|
||||
* `allow` Boolean
|
||||
|
||||
Define dinamicamente se sempre envia credenciais para HTTP NTLM ou autenticação *Negotiate* - normalmente, o Electron irá mandar apenas credenciais NTLM/Kerberos para URLs que se enquadram em sites "Intranet Local" (estão no mesmo domínio que você).
|
||||
Entretanto, esta detecção frequentemente falha quando redes corporativas são mal configuradas, então isso permite optar por esse comportamento e habilitá-lo para todas as URLs.
|
||||
|
||||
### `app.makeSingleInstance(callback)`
|
||||
|
||||
* `callback` Function
|
||||
|
||||
Este método faz da sua aplicação uma Aplicação de Instância Única - invés de permitir múltiplas instâncias do seu aplicativo rodarem, isto irá assegurar que apenas uma única instância do seu aplicativo rodará, e outras instâncias sinalizam esta instância e finalizam.
|
||||
|
||||
`callback` será chamado com `callback(argv, workingDirectory)` quando uma segunda instância tenha sido executada. `argv` é um vetor de argumentos de linha de comando da segunda instância, e `workingDirectory` é o atual endereço de seu diretório.
|
||||
Normalmente aplicativos respondem à isso não minimizando sua janela primária e dando foco à ela.
|
||||
|
||||
É garantida a execução do `callback` após o evento `ready` do `app` ser emitido.
|
||||
|
||||
Este método retorna `false` caso seu processo seja a instância primária do aplicativo e seu aplicativo deve continuar carregando. E retorna `true` caso seu processo tenha enviado seus parâmetros para outra instância, e você deve imediatamente finalizar.
|
||||
|
||||
No OS X o sistema enforça instância única automaticamente quando usuários tentam abrir uma segunda instância do seu aplicativo no *Finder*, e os eventos `open-file` e `open-url` serão emitidos para isso. Entretanto, quando usuários inicializam seu aplicativo na linha de comando, o mecanismo de instância única do sistema será ignorado e você terá de utilizar esse método para assegurar-se de ter uma instância única.
|
||||
|
||||
Um exemplo de ativação da janela de primeira instância quando uma segunda instância inicializa:
|
||||
|
||||
```js
|
||||
var myWindow = null;
|
||||
|
||||
var shouldQuit = app.makeSingleInstance(function(commandLine, workingDirectory) {
|
||||
// Alguém tentou rodar uma segunda instância, devemos focar nossa janela
|
||||
if (myWindow) {
|
||||
if (myWindow.isMinimized()) myWindow.restore();
|
||||
myWindow.focus();
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
if (shouldQuit) {
|
||||
app.quit();
|
||||
return;
|
||||
}
|
||||
|
||||
// Cria myWindow, carrega o resto do aplicativo, etc...
|
||||
app.on('ready', function() {
|
||||
});
|
||||
```
|
||||
|
||||
### `app.setAppUserModelId(id)` _Windows_
|
||||
|
||||
* `id` String
|
||||
|
||||
Muda o [Application User Model ID][app-user-model-id] para `id`.
|
||||
|
||||
### `app.commandLine.appendSwitch(switch[, value])`
|
||||
|
||||
Adiciona uma opção (com `value` opcional) à linha de comando do Chromium.
|
||||
|
||||
**Nota:** Isto não irá afetar `process.argv`, e é utilizado principalmente por desenvolvedores para controlar alguns comportamentos de baixo nível do Chromium.
|
||||
|
||||
### `app.commandLine.appendArgument(value)`
|
||||
|
||||
Adiciona um argumento à linha de comando do Chromium. O argumento será passado com aspas corretamente.
|
||||
|
||||
**Nota:** Isto não irá afetar `process.argv`.
|
||||
|
||||
### `app.dock.bounce([type])` _OS X_
|
||||
|
||||
* `type` String (opcional) - Pode ser `critical` ou `informational`. O padrão é
|
||||
`informational`
|
||||
|
||||
Quando `critical` é passado, o ícone do *dock* irá pular até que o aplicativo se torne ativo ou a requisição seja cancelada.
|
||||
|
||||
Quando `informational` é passado, o ícone do *dock* irá pular por um segundo.
|
||||
Entretanto, a requisição se mantém ativa até que o aplicativo se torne ativo ou a requisição seja cancelada.
|
||||
|
||||
Retorna um ID representando a requisição.
|
||||
|
||||
### `app.dock.cancelBounce(id)` _OS X_
|
||||
|
||||
* `id` Integer
|
||||
|
||||
Cancela o salto do `id`.
|
||||
|
||||
### `app.dock.setBadge(text)` _OS X_
|
||||
|
||||
* `text` String
|
||||
|
||||
Define a string a ser exibida na área de *badging* do *dock*.
|
||||
|
||||
### `app.dock.getBadge()` _OS X_
|
||||
|
||||
Retorna a string da *badge* do *dock*.
|
||||
|
||||
### `app.dock.hide()` _OS X_
|
||||
|
||||
Esconde o ícone do *dock*.
|
||||
|
||||
### `app.dock.show()` _OS X_
|
||||
|
||||
Exibe o ícone do *dock*.
|
||||
|
||||
### `app.dock.setMenu(menu)` _OS X_
|
||||
|
||||
* `menu` Menu
|
||||
|
||||
Define o [menu do dock][dock-menu] do aplicativo.
|
||||
|
||||
[dock-menu]:https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/customizing_docktile/concepts/dockconcepts.html#//apple_ref/doc/uid/TP30000986-CH2-TPXREF103
|
||||
[tasks]:http://msdn.microsoft.com/en-us/library/windows/desktop/dd378460(v=vs.85).aspx#tasks
|
||||
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx
|
85
docs-translations/pt-BR/api/auto-updater.md
Normal file
85
docs-translations/pt-BR/api/auto-updater.md
Normal file
|
@ -0,0 +1,85 @@
|
|||
# autoUpdater
|
||||
|
||||
Este módulo oferece uma interface para o framework de atualização automática `Squirrel`.
|
||||
|
||||
## Avisos sobre Plataformas
|
||||
|
||||
Embora o `autoUpdater` ofereça uma API uniforme para diferentes plataformas, existem diferenças sutis em cada plataforma.
|
||||
|
||||
### OS X
|
||||
|
||||
No OS X, o módulo `autoUpdater` é construído sobre o [Squirrel.Mac][squirrel-mac], o que significa que você não precisa de nenhuma configuração especial para fazê-lo funcionar. Para requerimentos de servidor, você pode ler [Server Support][server-support].
|
||||
|
||||
### Windows
|
||||
|
||||
No Windows, você deve instalar seu aplicativo na máquina de um usuário antes que possa usar o auto-updater, então é recomendado utilizar o módulo [grunt-electron-installer][installer] para gerar um instalador do Windows.
|
||||
|
||||
O instalador gerado com Squirrel irá criar um ícone de atalho com um [Application User Model ID][app-user-model-id] no formato `com.squirrel.PACKAGE_ID.YOUR_EXE_WITHOUT_DOT_EXE`, por exemplo: `com.squirrel.slack.Slack` e `com.squirrel.code.Code`. Você precisa usar o mesmo ID para seu aplicativo a API `app.setAppUserModelId`, senão o Windows não conseguirá fixar seu aplicativo corretamente na barra de tarefas.
|
||||
|
||||
A configuração do servidor também é diferente do OS X. Você pode ler a documentação do [Squirrel.Windows][squirrel-windows] para mais detalhes.
|
||||
|
||||
### Linux
|
||||
|
||||
Não há suporte nativo do auto-updater para Linux, então é recomendado utilizar o gerenciador de pacotes da distribuição para atualizar seu aplicativo.
|
||||
|
||||
## Eventos
|
||||
|
||||
O objeto `autoUpdater` emite os seguintes eventos:
|
||||
|
||||
### Evento: 'error'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `error` Error
|
||||
|
||||
Emitido quando há um erro durante a atualização.
|
||||
|
||||
### Evento: 'checking-for-update'
|
||||
|
||||
Emitido quando está verificando se uma atualização foi inicializada.
|
||||
|
||||
### Evento: 'update-available'
|
||||
|
||||
Emitido quando há uma atualização disponível. A autalização é baixada automaticamente.
|
||||
|
||||
### Evento: 'update-not-available'
|
||||
|
||||
Emitido quando não há uma atualização disponível.
|
||||
|
||||
### Evento: 'update-downloaded'
|
||||
|
||||
Retorna:
|
||||
|
||||
* `event` Event
|
||||
* `releaseNotes` String
|
||||
* `releaseName` String
|
||||
* `releaseDate` Date
|
||||
* `updateURL` String
|
||||
|
||||
Emitido quando uma atualização foi baixada.
|
||||
|
||||
No Windows apenas `releaseName` está disponível.
|
||||
|
||||
## Métodos
|
||||
|
||||
O objeto `autoUpdater` possui os seguintes métodos:
|
||||
|
||||
### `autoUpdater.setFeedURL(url)`
|
||||
|
||||
* `url` String
|
||||
|
||||
Define a `url` e inicializa o auto-updater. A `url` não pode ser alterada uma vez que foi definida.
|
||||
|
||||
### `autoUpdater.checkForUpdates()`
|
||||
|
||||
Pergunta ao servidor se há uma atualização. Você deve chamar `setFeedURL` antes de usar esta API.
|
||||
|
||||
### `autoUpdater.quitAndInstall()`
|
||||
|
||||
Reinicia o aplicativo e instala a atualização após esta ter sido baixada. Só deve ser chamado após o `update-downloaded` ter sido emitido.
|
||||
|
||||
[squirrel-mac]: https://github.com/Squirrel/Squirrel.Mac
|
||||
[server-support]: https://github.com/Squirrel/Squirrel.Mac#server-support
|
||||
[squirrel-windows]: https://github.com/Squirrel/Squirrel.Windows
|
||||
[installer]: https://github.com/atom/grunt-electron-installer
|
||||
[app-user-model-id]: https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(v=vs.85).aspx
|
|
@ -1,22 +1,48 @@
|
|||
# process
|
||||
O objeto `process` no Electron tem as seguintes diferenças de um upstream node:
|
||||
O objeto `process` no Electron tem as seguintes diferenças do objeto no upstream node:
|
||||
|
||||
* `process.type` String - Tipo de processo, pode ser `browser` (i.e. main process)
|
||||
* `process.type` String - Tipo de processo, pode ser `browser` (processo principal)
|
||||
ou `renderer`.
|
||||
* `process.versions['electron']` String - Versão do Electron.
|
||||
* `process.versions['chrome']` String - Versão do Chromium.
|
||||
* `process.resourcesPath` String - Caminho para os códigos fontes JavaScript.
|
||||
* `process.resourcesPath` String - Caminho para o código fonte JavaScript.
|
||||
* `process.mas` Boolean - Para build da Mac App Store, este valor é `true`, para outros builds é `undefined`.
|
||||
|
||||
## Eventos
|
||||
|
||||
### Evento: 'loaded'
|
||||
|
||||
Emitido quando o Electron carregou seu script de inicialização interno e está começando a carregar a página web ou o script principal.
|
||||
|
||||
Pode ser utilizado pelo script pré-carregamento (preload.js abaixo) para adicionar símbolos globais do Node removidos para o escopo global quando a integração do node é desligada:
|
||||
|
||||
```js
|
||||
// preload.js
|
||||
var _setImmediate = setImmediate;
|
||||
var _clearImmediate = clearImmediate;
|
||||
process.once('loaded', function() {
|
||||
global.setImmediate = _setImmediate;
|
||||
global.clearImmediate = _clearImmediate;
|
||||
});
|
||||
```
|
||||
|
||||
## Propriedades
|
||||
|
||||
### `process.noAsar`
|
||||
|
||||
Definir isto para `true` pode desabilitar o suporte para arquivos `asar` nos módulos nativos do Node.
|
||||
|
||||
# Métodos
|
||||
O objeto `process` tem os seguintes método:
|
||||
|
||||
O objeto `process` tem os seguintes métodos:
|
||||
|
||||
### `process.hang`
|
||||
|
||||
Afeta a thread principal do processo atual.
|
||||
Faz com que o *thread* principal do processo congele.
|
||||
|
||||
## process.setFdLimit(MaxDescritores) _OS X_ _Linux_
|
||||
### `process.setFdLimit(maxDescriptors)` _OS X_ _Linux_
|
||||
|
||||
* `maxDescriptors` Integer
|
||||
|
||||
Define o limite do arquivo descritor para `maxDescriptors` ou para o limite do OS,
|
||||
o que for menor para o processo atual.
|
||||
o que for menor para o processo atual.
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# shell
|
||||
|
||||
O módulo `shell` fornece funções relacionadas intereções com o OS do usuário.
|
||||
O módulo `shell` fornece funções relacionadas à integração com o desktop.
|
||||
|
||||
Um exemplo para abrir uma URL no browser padrão do usuário:
|
||||
|
||||
```javascript
|
||||
var shell = require('shell');
|
||||
const shell = require('shell');
|
||||
shell.openExternal('https://github.com');
|
||||
```
|
||||
|
||||
|
@ -17,26 +17,26 @@ O módulo `shell` tem os seguintes métodos:
|
|||
|
||||
* `fullPath` String
|
||||
|
||||
Exibe o arquivo no gerenciador de arquivos padrão do sistema. Se possivel, seleciona o arquivo automaticamente.
|
||||
Exibe o arquivo num gerenciador de arquivos. Se possivel, seleciona o arquivo.
|
||||
|
||||
### `shell.openItem(fullPath)`
|
||||
|
||||
* `fullPath` String
|
||||
|
||||
Abre o arquivo em seu programa padrão.
|
||||
Abre o arquivo de maneira padrão do desktop.
|
||||
|
||||
### `shell.openExternal(url)`
|
||||
|
||||
* `url` String
|
||||
|
||||
Abre o arquivo seguido de um protocol em seu programa padrão. (Por
|
||||
exemplo, mailto:foo@bar.com.)
|
||||
Abre a URL de protocolo externo de maneira padrão do desktop. (Por
|
||||
exemplo, mailto: URLs no programa de email padrão do usuário)
|
||||
|
||||
### `shell.moveItemToTrash(fullPath)`
|
||||
|
||||
* `fullPath` String
|
||||
|
||||
Move o arquivo para a lixeira e retorna um boolean com o resultado da operação.
|
||||
Move o arquivo para a lixeira e retorna um status boolean com o resultado da operação.
|
||||
|
||||
### `shell.beep()`
|
||||
|
||||
|
|
|
@ -2,28 +2,25 @@
|
|||
|
||||
Estas são as diretrizes de estilo para codificar no Electron.
|
||||
|
||||
## C++ and Python
|
||||
## C++ e Python
|
||||
|
||||
Para C ++ e Python, seguimos os padrões do projeto Chromium [Estilo de Codificação](http://www.chromium.org/developers/coding-style). Há também um
|
||||
Para C++ e Python, seguimos o [Estilo de Codificação](http://www.chromium.org/developers/coding-style) do projeto Chromium. Há também um
|
||||
script `script/cpplint.py` para verificar se todos os arquivos estão em conformidade.
|
||||
|
||||
A versão Python que estamos usando agora é a Python 2.7.
|
||||
|
||||
O código C ++ usa do Chromium's um monte de tipos e abstrações, por isso é recomendada para se familiarizar com eles. Um bom lugar para começar com a documentação do Chromium's [Important Abstractions and Data Structures](https://www.chromium.org/developers/coding-style/important-abstractions-and-data-structures). O documento menciona alguns tipos especiais, com escopo tipos (que automaticamente libera sua memória quando sai do escopo), registrando mecanismos etc.
|
||||
O código C++ usa várias abstrações e tipos do Chromium, por isso é recomendado familiarizar-se com eles. Um bom lugar para começar é com a documentação do Chromium [Important Abstractions and Data Structures](https://www.chromium.org/developers/coding-style/important-abstractions-and-data-structures). O documento menciona alguns tipos especiais, *scoped types* (que automaticamente liberam sua memória ao sair do escopo), mecanismos de *log* etc.
|
||||
|
||||
## CoffeeScript
|
||||
|
||||
For CoffeeScript, we follow GitHub's [Style
|
||||
Guide](https://github.com/styleguide/javascript) and the following rules:
|
||||
Para CoffeeScript, seguimos o [Guia de Estilo] (https://github.com/styleguide/javascript) do GitHub com as seguintes regras:
|
||||
|
||||
Para CoffeeScript, seguimos o estilo do GitHub [Guia de Estilo] (https://github.com/styleguide/javascript) com as seguintes regras:
|
||||
* Os arquivos **NÃO DEVEM** terminar com uma nova linha, porque queremos corresponder aos padrões de estilo Google.
|
||||
|
||||
* Os arquivos devem **NÃO DEVEM** com nova linha no final, porque queremos corresponder aos padrões de estilo Google.
|
||||
|
||||
* Os nomes dos arquivos devem ser concatenados com o `-` em vez de`_`, por exemplo, `file-name.coffee` em vez de`file_name.coffee`, porque no [github/atom](https://github.com/github/atom) os nomes dos módulos são geralmente em o formulário `module-name`. Esta regra só se aplica aos arquivos com extensão `.coffee`.
|
||||
* Os nomes dos arquivos devem ser concatenados com `-` em vez de `_`, por exemplo, `file-name.coffee` em vez de `file_name.coffee`, porque no [github/atom](https://github.com/github/atom) os nomes dos módulos são geralmente da forma `module-name`. Esta regra só se aplica aos arquivos com extensão `.coffee`.
|
||||
*
|
||||
## API Names
|
||||
## Nomes de APIs
|
||||
|
||||
Ao criar uma nova API, devemos preferencialmente utilizar métodos getters e setters em vez de
|
||||
estilo de uma função do jQuery. Por exemplo, `.getText()` e `.setText(text)` utilize `.text([text])`. Existe uma
|
||||
Ao criar uma nova API, devemos preferencialmente utilizar métodos getters e setters em vez do
|
||||
estilo de uma função única do jQuery. Por exemplo, `.getText()` e `.setText(text)` são preferenciais a `.text([text])`. Existe uma
|
||||
[discussão](https://github.com/atom/electron/issues/46) sobre este assunto.
|
||||
|
|
|
@ -4,7 +4,7 @@ Electron permite criar aplicações desktop com puro JavaScript através de
|
|||
um runtime com APIs ricas e nativas. Você pode ver isso como uma variação do
|
||||
runtime do io.js que é focado em aplicações desktop em vez de web servers.
|
||||
|
||||
Isso não significa que o Electron é uma ligação em JavaScript para blibliotécas
|
||||
Isso não significa que o Electron é uma ligação em JavaScript para bibliotecas
|
||||
de interface gráfica (GUI). Em vez disso, Electron usa páginas web como
|
||||
interface gráfica, então você pode ver isso também como um navegador Chromium
|
||||
mínimo, controlado por JavaScript.
|
||||
|
@ -17,13 +17,13 @@ mostrar uma GUI criando páginas web.
|
|||
|
||||
### Processo Renderizador
|
||||
|
||||
Desde que o Electron usa o Chromium para mostrar as páginas web, a arquitetura
|
||||
Já que o Electron usa o Chromium para mostrar as páginas web, a arquitetura
|
||||
multi-processo do Chromium também é usada. Cada página web no Electron roda em
|
||||
seu próprio processo, o que é chamado de __processo renderizador__.
|
||||
|
||||
Em navegadores comuns, as páginas web normalmente rodam em um ambiente em sandbox
|
||||
e não tem permissão de acesso para recursos nativos. Usuários Electron, entretanto,
|
||||
tem o poder de usar as APIs do io.js nas páginas web, permitindo interações de baixo
|
||||
e não têm permissão de acesso para recursos nativos. Usuários Electron, entretanto,
|
||||
têm o poder de usar as APIs do io.js nas páginas web, permitindo interações de baixo
|
||||
nível no sistema operacional.
|
||||
|
||||
### Diferenças Entre o Processo Principal e o Processo Renderizador
|
||||
|
@ -33,12 +33,12 @@ Cada instância de `BrowserWindow` roda a página web em seu próprio processo r
|
|||
Quando uma instância de `BrowserWindow` é destruída, o processo renderizador
|
||||
correspondente também é finalizado.
|
||||
|
||||
O processo principal gerência todas as páginas web de seus processos renderizadores
|
||||
O processo principal gerencia todas as páginas web de seus processos renderizadores
|
||||
correspondentes. Cada processo renderizador é isolado e toma conta de sua
|
||||
respectiva página web.
|
||||
|
||||
Nas páginas web, chamar APIs nativas relacionadas à GUI não é permitido porque
|
||||
gerênciar recursos de GUI em páginas web é muito perigoso e torna fácil o vazamento de
|
||||
gerenciar recursos de GUI em páginas web é muito perigoso e torna fácil o vazamento de
|
||||
recursos. Se você quer realizar operações com GUI em páginas web, o processo
|
||||
renderizador da página web deve se comunicar com o processo principal para requisitar
|
||||
que o processo principal realize estas operações.
|
||||
|
@ -52,26 +52,26 @@ módulo [remoto](../../../docs/api/remote.md) para comunicação RPC.
|
|||
Geralmente, um app Electron é estruturado assim:
|
||||
|
||||
```text
|
||||
your-app/
|
||||
seu-app/
|
||||
├── package.json
|
||||
├── main.js
|
||||
└── index.html
|
||||
```
|
||||
|
||||
O formato de `package.json` é exatamente o mesmo que os dos módulos do Node, e
|
||||
O formato de `package.json` é exatamente o mesmo que o dos módulos do Node,
|
||||
e o script especificado pelo campo `main` é o script de inicialização do seu app,
|
||||
que irá executar o processo principal. Um exemplo do seu `package.json` deve parecer
|
||||
com isso:
|
||||
|
||||
```json
|
||||
{
|
||||
"name" : "your-app",
|
||||
"name" : "seu-app",
|
||||
"version" : "0.1.0",
|
||||
"main" : "main.js"
|
||||
}
|
||||
```
|
||||
|
||||
__Nota__: Se o campo `main` não estiver presente no `package.jso`, o Electron irá
|
||||
__Nota__: Se o campo `main` não estiver presente no `package.json`, o Electron irá
|
||||
tentar carregar um `index.js`
|
||||
|
||||
O `main.js` deve criar as janelas e os manipuladores de eventos do sistema, um típico
|
||||
|
@ -140,8 +140,8 @@ Finalmente o `index.html` é a página web que você quer mostrar:
|
|||
|
||||
## Execute seu App
|
||||
|
||||
Uma vez que você criou seus arquivos `main.js`, `index.html, e `package.json` iniciais,
|
||||
você provavelmente vai querer tentar executar seu app localmente para testa-lo a ter
|
||||
Uma vez que você criou seus arquivos `main.js`, `index.html`, e `package.json` iniciais,
|
||||
você provavelmente vai querer tentar executar seu app localmente para testa-lo e ter
|
||||
certeza que funciona como você espera.
|
||||
|
||||
### electron-prebuilt
|
||||
|
@ -167,19 +167,19 @@ executar seu app diretamente.
|
|||
#### Windows
|
||||
|
||||
```bash
|
||||
$ .\electron\electron.exe your-app\
|
||||
$ .\electron\electron.exe seu-app\
|
||||
```
|
||||
|
||||
#### Linux
|
||||
|
||||
```bash
|
||||
$ ./electron/electron your-app/
|
||||
$ ./electron/electron seu-app/
|
||||
```
|
||||
|
||||
#### OS X
|
||||
|
||||
```bash
|
||||
$ ./Electron.app/Contents/MacOS/Electron your-app/
|
||||
$ ./Electron.app/Contents/MacOS/Electron seu-app/
|
||||
```
|
||||
|
||||
`Electron.app` aqui é uma parte do pacote de lançamento do Electron, você pode baixa-lo
|
||||
|
@ -188,5 +188,5 @@ $ ./Electron.app/Contents/MacOS/Electron your-app/
|
|||
### Executar como uma distribuição
|
||||
|
||||
Depois de terminar seu app, você pode criar uma distribuição seguindo o guia
|
||||
[Application Distribution](./application-distribution.md) e então executar o app
|
||||
[Distribuição de aplicações](./application-distribution.md) e então executar o app
|
||||
empacotado.
|
||||
|
|
82
docs-translations/ru-RU/README.md
Normal file
82
docs-translations/ru-RU/README.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
Пожалуйста, убедитесь, что вы используете документацию, которые соответствует вашей версии Electron.
|
||||
Номер версии должен быть частью адреса страницы. Если это не так, вы
|
||||
возможно,используете документицию ветки разработки, которая может содержать изменения api,
|
||||
которые не совместимы с вашей версией Electron. Если это так,
|
||||
Вы можете переключиться на другую версию документации в списке
|
||||
[доступные версии](http://electron.atom.io/docs/) на atom.io, или
|
||||
если вы используете интерфейс GitHub, откройте список "переключение ветки/тега" и
|
||||
выберите тег, который соответствует вашей версии.
|
||||
|
||||
## Руководства
|
||||
|
||||
* [Поддерживаемые платформы](tutorial/supported-platforms.md)
|
||||
* [Application Distribution](tutorial/application-distribution.md)
|
||||
* [Mac App Store Submission Guide](tutorial/mac-app-store-submission-guide.md)
|
||||
* [Application Packaging](tutorial/application-packaging.md)
|
||||
* [Using Native Node Modules](tutorial/using-native-node-modules.md)
|
||||
* [Отладка главного процесса](tutorial/debugging-main-process.md)
|
||||
* [Использование Selenium и WebDriver](tutorial/using-selenium-and-webdriver.md)
|
||||
* [DevTools Extension](tutorial/devtools-extension.md)
|
||||
* [Использование Pepper Flash Plugin](tutorial/using-pepper-flash-plugin.md)
|
||||
|
||||
## Учебники
|
||||
|
||||
* [Быстрый старт](tutorial/quick-start.md)
|
||||
* [Desktop Environment Integration](tutorial/desktop-environment-integration.md)
|
||||
* [Online/Offline Event Detection](tutorial/online-offline-events.md)
|
||||
|
||||
## API References
|
||||
|
||||
* [Краткий обзор](api/synopsis.md)
|
||||
* [Process Object](api/process.md)
|
||||
* [Поддерживаемые параметры командной строки Chrome](api/chrome-command-line-switches.md)
|
||||
|
||||
### Пользовательские элементы DOM:
|
||||
|
||||
* [`File` Object](api/file-object.md)
|
||||
* [`<webview>` Tag](api/web-view-tag.md)
|
||||
* [`window.open` Function](api/window-open.md)
|
||||
|
||||
### Modules for the Main Process:
|
||||
|
||||
* [app](api/app.md)
|
||||
* [autoUpdater](api/auto-updater.md)
|
||||
* [BrowserWindow](api/browser-window.md)
|
||||
* [contentTracing](api/content-tracing.md)
|
||||
* [dialog](api/dialog.md)
|
||||
* [globalShortcut](api/global-shortcut.md)
|
||||
* [ipcMain](api/ipc-main.md)
|
||||
* [Menu](api/menu.md)
|
||||
* [MenuItem](api/menu-item.md)
|
||||
* [powerMonitor](api/power-monitor.md)
|
||||
* [powerSaveBlocker](api/power-save-blocker.md)
|
||||
* [protocol](api/protocol.md)
|
||||
* [session](api/session.md)
|
||||
* [webContents](api/web-contents.md)
|
||||
* [Tray](api/tray.md)
|
||||
|
||||
### Модули для Renderer Process (Web Page):
|
||||
|
||||
* [ipcRenderer](api/ipc-renderer.md)
|
||||
* [remote](api/remote.md)
|
||||
* [webFrame](api/web-frame.md)
|
||||
|
||||
### Modules for Both Processes:
|
||||
|
||||
* [clipboard](api/clipboard.md)
|
||||
* [crashReporter](api/crash-reporter.md)
|
||||
* [nativeImage](api/native-image.md)
|
||||
* [screen](api/screen.md)
|
||||
* [shell](api/shell.md)
|
||||
|
||||
## Разработка
|
||||
|
||||
* [Стиль кодирования](development/coding-style.md)
|
||||
* [Source Code Directory Structure](development/source-code-directory-structure.md)
|
||||
* [Technical Differences to NW.js (formerly node-webkit)](development/atom-shell-vs-node-webkit.md)
|
||||
* [Обзор системы сборки](development/build-system-overview.md)
|
||||
* [Инструкции по сборке (OS X)](development/build-instructions-osx.md)
|
||||
* [Инструкции по сборке (Windows)](development/build-instructions-windows.md)
|
||||
* [Инструкции по сборке (Linux)](development/build-instructions-linux.md)
|
||||
* [Настройка сервера символов для отладчика](development/setting-up-symbol-server.md)
|
||||
|
|
@ -12,7 +12,7 @@ __1. 应用的入口__
|
|||
|
||||
在 Electron 中,入口是一个 JavaScript 脚本。不同于直接提供一个URL,你需要手动创建一个浏览器窗口,然后通过 API 加载 HTML 文件。你还可以监听窗口事件,决定何时让应用退出。
|
||||
|
||||
Electron 的工作方式更像 Node.js 运行时。 Electron 的 APIs 更加底层,因此你可以它替代 [PhantomJS](http://phantomjs.org/) 做浏览器测试。
|
||||
Electron 的工作方式更像 Node.js 运行时。 Electron 的 APIs 更加底层,因此你可以用它替代 [PhantomJS](http://phantomjs.org/) 做浏览器测试。
|
||||
|
||||
__2. 构建系统__
|
||||
|
||||
|
|
141
docs-translations/zh-CN/tutorial/application-packaging.md
Normal file
141
docs-translations/zh-CN/tutorial/application-packaging.md
Normal file
|
@ -0,0 +1,141 @@
|
|||
# 应用打包
|
||||
|
||||
为舒缓Windows下路径名过长的问题[issues](https://github.com/joyent/node/issues/6960), 也略对`require`加速以及简单隐匿你的源代码, 你可以通过极小的源代码改动将你的应用打包成[asar][asar].
|
||||
|
||||
## 生成`asar`包
|
||||
|
||||
[asar][asar]是一种将多个文件合并成一个文件的类tar风格的归档格式。 Electron可以无需解压,即从其中读取任意文件内容。
|
||||
|
||||
参照如下步骤将你的应用打包成`asar`:
|
||||
|
||||
### 1. 安装asar
|
||||
|
||||
```bash
|
||||
$ npm install -g asar
|
||||
```
|
||||
|
||||
### 2. 用`asar pack`打包
|
||||
|
||||
```bash
|
||||
$ asar pack your-app app.asar
|
||||
```
|
||||
|
||||
## 使用`asar`包
|
||||
|
||||
在Electron中有两类APIs:Node.js提供的Node APIs和Chromium提供的Web APIs。这两种APIs都支持从`asar`包中读取文件。
|
||||
|
||||
### Node API
|
||||
|
||||
由于Electron中打了特别补丁, Node APIs中如`fs.readFile`或者`require`之类的方法可以将`asar`视之为虚拟文件夹,读取`asar`里面的文件就和从真实的文件系统中读取一样。
|
||||
|
||||
例如,假设我们在`/path/to`文件夹下有个`example.asar`包:
|
||||
|
||||
```bash
|
||||
$ asar list /path/to/example.asar
|
||||
/app.js
|
||||
/file.txt
|
||||
/dir/module.js
|
||||
/static/index.html
|
||||
/static/main.css
|
||||
/static/jquery.min.js
|
||||
```
|
||||
|
||||
从`asar`包读取一个文件:
|
||||
|
||||
```javascript
|
||||
const fs = require('fs');
|
||||
fs.readFileSync('/path/to/example.asar/file.txt');
|
||||
```
|
||||
|
||||
列出`asar`包中根目录下的所有文件:
|
||||
|
||||
```javascript
|
||||
const fs = require('fs');
|
||||
fs.readdirSync('/path/to/example.asar');
|
||||
```
|
||||
|
||||
使用`asar`包中的一个模块:
|
||||
|
||||
```javascript
|
||||
require('/path/to/example.asar/dir/module.js');
|
||||
```
|
||||
|
||||
你也可以使用`BrowserWindow`来显示一个`asar`包里的web页面:
|
||||
|
||||
```javascript
|
||||
const BrowserWindow = require('electron').BrowserWindow;
|
||||
var win = new BrowserWindow({width: 800, height: 600});
|
||||
win.loadURL('file:///path/to/example.asar/static/index.html');
|
||||
```
|
||||
|
||||
### Web API
|
||||
|
||||
在Web页面里,用`file:`协议可以获取`asar`包中文件。和Node API一样,视`asar`包如虚拟文件夹。
|
||||
|
||||
例如,用`$.get`获取文件:
|
||||
|
||||
```html
|
||||
<script>
|
||||
var $ = require('./jquery.min.js');
|
||||
$.get('file:///path/to/example.asar/file.txt', function(data) {
|
||||
console.log(data);
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
### 像“文件”那样处理`asar`包
|
||||
|
||||
有些场景,如:核查`asar`包的校验和,我们需要像读取“文件”那样读取`asar`包的内容(而不是当成虚拟文件夹)。你可以使用内置的`original-fs`(提供和`fs`一样的APIs)模块来读取`asar`包的真实信息。
|
||||
|
||||
```javascript
|
||||
var originalFs = require('original-fs');
|
||||
originalFs.readFileSync('/path/to/example.asar');
|
||||
```
|
||||
|
||||
## Node API缺陷
|
||||
|
||||
尽管我们已经尽了最大努力使得`asar`包在Node API下的应用尽可能的趋向于真实的目录结构,但仍有一些底层Node API我们无法保证其正常工作。
|
||||
|
||||
### `asar`包是只读的
|
||||
|
||||
`asar`包中的内容不可更改,所以Node APIs里那些可以用来修改文件的方法在对待`asar`包时都无法正常工作。
|
||||
|
||||
### Working Directory在`asar`包中无效
|
||||
|
||||
尽管`asar`包是虚拟文件夹,但其实并没有真实的目录架构对应在文件系统里,所以你不可能将working Directory设置成`asar`包里的一个文件夹。将`asar`中的文件夹以`cwd`形式作为参数传入一些API中也会报错。
|
||||
|
||||
### API中的额外“开箱”
|
||||
|
||||
大部分`fs`API可以无需解压即从`asar`包中读取文件或者文件的信息,但是在处理一些依赖真实文件路径的底层系统方法时,Electron会将所需文件解压到临时目录下,然后将临时目录下的真实文件路径传给底层系统方法使其正常工作。 对于这类API,耗费会略多一些。
|
||||
|
||||
以下是一些需要额外解压的APIs:
|
||||
|
||||
* `child_process.execFile`
|
||||
* `child_process.execFileSync`
|
||||
* `fs.open`
|
||||
* `fs.openSync`
|
||||
* `process.dlopen` - `require`native模块时用到
|
||||
|
||||
### `fs.stat`获取的stat信息不可靠
|
||||
|
||||
对`asar`包中的文件取`fs.stat`,返回的`Stats`对象不是精确值,因为这些文件不是真实存在于文件系统里。所以除了文件大小和文件类型以外,你不应该依赖`Stats`对象的值。
|
||||
|
||||
### 执行`asar`包中的程序
|
||||
|
||||
Node中有一些可以执行程序的API,如`child_process.exec`,`child_process.spawn`和`child_process.execFile`等,但只有`execFile`可以执行`asar`包中的程序。
|
||||
|
||||
因为`exec`和`spawn`允许`command`替代`file`作为输入,而`command`是需要在shell下执行的,目前没有可靠的方法来判断`command`中是否在操作一个`asar`包中的文件,而且即便可以判断,我们依旧无法保证可以在无任何副作用的情况下替换`command`中的文件路径。
|
||||
|
||||
## 打包时排除文件
|
||||
|
||||
如上所述,一些Node API会在调用时将文件解压到文件系统中,除了效率问题外,也有可能引起杀毒软件的注意!
|
||||
|
||||
为解决这个问题,你可以在生成`asar`包时使用`--unpack`选项来排除一些文件,使其不打包到`asar`包中,下面是如何排除一些用作共享用途的native模块的方法:
|
||||
|
||||
```bash
|
||||
$ asar pack app app.asar --unpack *.node
|
||||
```
|
||||
|
||||
经过上述命令后,除了生成的`app.asar`包以外,还有一个包含了排除文件的`app.asar.unpacked`文件夹,你需要将这个文件夹一起拷贝,提供给用户。
|
||||
|
||||
[asar]: https://github.com/atom/asar
|
Loading…
Add table
Add a link
Reference in a new issue