У меня есть приложение, которое в основном является оберткой для внутреннего веб-сайта компании. Идея состоит в том, чтобы легко загрузить веб-сайт в своем собственном окне на моем Chromebook, таким образом, он не будет выгружаться, когда ОЗУ станет низким.
У меня очень простое приложение с одним WebView, которое потребляет все окно приложения. Проблема в том, что всякий раз, когда я переключаюсь от окна и возвращаюсь, веб-просмотр потерял фокус. Это особенно раздражает, потому что это приложение для чата, и я хотел бы начать разговор сразу же после alt-tabbing обратно в окно.
Я просмотрел webview каждый раз, когда окно получает фокус, но разрыв между Window (от chrome.windows) и AppWindow (от chrome.app.window) делает это нетривиальным. Событие, которое мне нужно только для объектов Window, но я могу только окончательно получить текущий AppWindow. Теоретически я могу получить текущее активное окно, когда приложение запускается первым, но это кажется хакерским и ненадежным.
index.html
<!DOCTYPE html>
<html>
<head>
<title>Chat App</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<webview src="https://example.com/" id="chat"></webview>
</body>
</html>
background.js
chrome.app.runtime.onLaunched.addListener(function(launchData) {
chrome.app.window.create(
'index.html',
{
id: 'chat'
}
);
});
styles.css
Употребление веб-обозревателя всего окна было немного сложнее; Я должен был использовать некоторые избыточные свойства CSS, чтобы заставить его работать правильно.
html, body {
margin: 0;
padding: 0;
overflow: hidden;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
}
#chat {
border: 0 none;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
width: 100%;
height: 100%;
}