Здравствуйте, я создаю веб-сайт, который будет отображать различный контент в браузере и в приложении для электроники
Я наткнулся на этот код (process.versions.electron != 'undefined' && process.versions.electron != null)
, но он не работает в браузере и в электронном режиме, и я пытаюсь скрыть это кнопка с идентификатором biblioteca
if(process.versions.electron != 'undefined' && process.versions.electron != null){
document.getElementById("biblioteca").style.display = "block";
}else{
document.getElementById("biblioteca").style.display = "none";
}
boton en mi index.html
<button id="biblioteca">Biblioteca</button>
, чтобы быть более конкретным, я хотел бы создать, чтобы сеть обнаруживала, находится ли она в обычном браузере, например, Opera, Firefox, Chrome Etx или непосредственно в браузере. от электрона js
Ты можешь использовать признак webPreferences.preload
в выборах, назвав BrowserWindow( )
.
Это позволяет тебе загружать scripts помещение перед любым другим рукописным шрифтом страницы , но используя тот же DOM.
Идея состоит в том, чтобы использовать это, чтобы создавать отметку , которые позволяли бы тебе отличать, если ты находишься в electron
или в браузере нормальных :
Например, давайте предполагать минимальный проект в electron
:
/
package.json
index.js
preload.js
Файл preload.js
достаточно простой:
window['ThisPageIsRunningInElectron'] = 'UnTextoRaroQueSeaDifícilEncontrarEnPáginasNormales' ;
И в твоем главном файле index.js
, где ты создаешь окно браузера, ты делаешь:
MainWindow = new ElectronModule.BrowserWindow( {
width: 800,
height: 600,
title: 'Concept Test',
webPreferences: {
webSecurity: false,
preload: PathModule.join( __dirname, '/preload.js' ),
nodeIntegration: false,
allowRunningInsecureContent: true,
defaultEncoding: 'UTF-8',
}
} );
, Поскольку ты видишь, мы выводим из строя интеграция node
со страницей, чтобы гарантировать максимальную совместимость, и показываем файл preload
, который нужно загружать.
Как только был загружен твой унифицированный указатель ресурса, изнутри твоей страницы .html
, ты можешь подтверждать легко, находишься ли или нет ты в electron
:
if( window['ThisPageIsRunningInElectron'] === 'UnTextoRaroQueSeaDifícilEncontrarEnPáginasNormales' ) {
// Este código se ejecutará solo si estamos en electron.
}
Конечно, твоего файла preload.js
может быть все сложное, что ты захотел . Подумай, что к этому файлу относится электрон как будто ты делал
<script src="file:///preload.js"></script>
а следовательно ты можешь помещать весь код, в котором ты нуждаешься, включено загружать другие унифицированный указатель ресурса (но он помнит, что этот scripts так нагруженные только будет доступен в electron
).
Ты составляешь твое собственное решение. Код электрона, и chrome несмотря на то, что они были бы похожими, они могли бы содержать различия. В твоем примере, браузер не имеет доступа к process. В то время как среда в nodejs, если бы у него могло быть это. С другой стороны, есть способы обнаруживать, что рукописный шрифт работает в node. Посредством проверки process:
(process === undefined) & & (process.release.name === 'node')
Однако, будь должен иметь в виду, что это не значит, что Ваш рукописный шрифт работает в electron.js
, Так как Вы составляете ваше собственное решение, он мог бы добавлять флаги к различным builds производства. Немного такой простой как process.targetEnv = "электрон" и подтверждать это в начале могло бы функционировать.
loadURL("http://localhost/");
? из-за которого app cargará унифицированный указатель ресурса не файл html локальный – Max 27.11.2019, 05:57