Фон
У меня есть приложение Chrome Kiosk, в котором я хотел бы использовать chrome.networking.onc
API, чтобы позволить моим пользователям изменять сети WiFi.
Моя проблема
Тамchrome.networking.onc
API недоступен приложению ни в фоновом скрипте приложения, ни в окне приложения во время работы в сеансе киоска.
Что я пробовал
Согласно chrome.networking.onc
документация должна быть доступна приложениям в режиме киоска.
Я добавил networking.onc
к своему permissions
в манифесте приложения.
https://developer.chrome.com/apps/networking_onc
https://developer.chrome.com/apps/declare_permissions
Приложение киоска принудительно устанавливается для пользователей Chromebook с помощью политики управления устройствами G Suite Chrome.
Пример кода
app / manifest.json
{
"manifest_version": 2,
"name": "Kiosk networking.onc",
"version": "1.0",
"permissions": ["networking.onc"],
"kiosk_enabled": true,
"kiosk_only": true,
"app": {
"background": {
"scripts": ["background.js"]
}
}
}
app / background.js
chrome.app.runtime.onLaunched.addListener(function(launchData) {
// send a list of available chrome APIs to the app window to be displayed
chrome.app.window.create(`window/main.html?chrome=${Object.keys(chrome).join(",")}&kiosk=${launchData.isKioskSession}`);
});
app / window / main.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Chrome app</title>
</head>
<body>
<p>
<h1>Background <code>chrome</code> object properties</h1>
<div id="background"></div>
</p>
<p>
<h1>App window <code>chrome</code> object properties</h1>
<div id="window"></div>
</p>
<button id="exit">window.close()</button>
<script src="main.js"></script>
</body>
</html>
app / window / main.js
// display the available Chrome APIs in the background script
document.getElementById("background").innerText = window.location.search;
// display all the available Chrome APIs (accessible from the app window).
document.getElementById("window").innerText = Object.keys(chrome).join(",");
document.getElementById("exit").onclick = () => window.close()
Вывод во время сеанса киоска (Chrome OS 77.0.3865.105)
На изображении ниже networking
не может быть найден среди доступных API, и если я пытаюсь получить доступ networking.onc
я получаю ошибку: Uncaught TypeError: Cannot read property 'onc' of undefined
![Chrome kiosk session result](https://i.stack.imgur.com/ke4Uw.jpg)