Windows, Linux ve macOS için Chrome 102 sürümünden sonra Chrome uygulamalarının desteği sonlandırılacak. ChromeOS'te Chrome uygulamaları en azından Ocak 2025'e kadar desteklenecek ancak Chrome uygulamalarının desteği sonlandırılacağı için web uygulamalarına geçmenizi önemle tavsiye ederiz. Daha önce Chrome uygulamaları, kiosk modunda web uygulamaları tarafından tek başına desteklenmeyen ek işlevlere sahipti. Kiosk web uygulamanızla birlikte bir yardımcı uzantı dağıtarak bu işlevlerin bazılarını kullanmaya devam edebilirsiniz.
Uzantılar nasıl dağıtılır?
Uzantılar, kiosk yapılandırma ekranında (Devices > Chrome > Apps & Extensions > Kiosks simgesine gidilerek bulunur) Chrome Yönetici Konsolu aracılığıyla dağıtılır. Uzantılar, herkese açık bir bağlantıda kendiliğinden barındırılabilir veya Chrome Web Mağazası'nda barındırılabilir. Kurumsal veya eğitim ortamında uzantıları yönetme hakkında daha fazla bilgi için lütfen bu belgeye bakın.
Web uygulamamdan uzantı API'lerini nasıl çağırabilirim?
Kiosk web uygulamanızla birlikte yardımcı uzantılar dağıtabildiğiniz için uzantı API'lerini çağırarak uzantı özelliklerinden yararlanabilirsiniz. Örneğin, cihaz ve donanım platformu hakkında faydalı bilgiler alabilir veya Chrome erişilebilirlik özelliklerini yönetebilirsiniz.
Yalnızca kiosk API'lerini kullanacaksanız bunları manifest dosyasında etkinleştirmeniz gerekir. Ardından, kiosk web uygulamanız ile yardımcı uzantınız arasında mesaj iletimini uygulayın. Böylece bu iki öğe birbiriyle iletişim kurabilir.
Yalnızca kiosk uzantısı API'lerini etkinleştirme
Yalnızca kiosk modunda kullanılabilen bazı uzantı API'leri vardır. Uzantınızın yalnızca kiosk API'lerini çağırması için manifest dosyasına "kiosk_enabled" alanını ekleyip true olarak ayarlamanız gerekir:
{ "manifest_version": 3, "version": "1.0", ... "kiosk_enabled": true }
Mesaj iletme özelliğini uygulama
Uzantı kurulumu
Web uygulamanızdan gelen mesajları almak ve yanıtlamak için istemciden (web uygulamanız) gelen mesajları dinleyen bir arka plan komut dosyası oluşturmanız ve bu istekleri ilgili bir API çağrısına yönlendirmeniz gerekir. Aşağıdaki örnekte, web uygulaması methodName değeri callRestart olan özel bir mesaj nesnesi gönderdiğinde ChromeOS cihazı yeniden başlatmak için istek proxy'lenir.
// message handler - extension code chrome.runtime.onMessageExternal.addListener(function (request, sender, sendResponse) { if (request.methodName == 'callRestart') { chrome.runtime.restart(); } });
Uzantının manifesti, hangi site ve uzantıların uzantıdaki yöntemleri çağırmasına izin verildiğini belirten externally_connectable anahtarı aracılığıyla uzantıya harici işlev çağrılarına izin verecek şekilde yapılandırılabilir. Chrome uzantıları ve Manifest V3 hakkında daha fazla bilgiyi resmi belgelerde bulabilirsiniz.
{ "background": { "service_worker": "background.js" }, "description": "This restarts your ChromeOS device. Lucky you!", "manifest_version": 3, "name": "Restart your kiosk app", "version": "1.0", "kiosk_enabled": true, "externally_connectable": { "accepts_tls_channel_id": false, "matches": [ "://developer.android.com/" ] } }
Web uygulaması kurulumu
Uzantıyı bir web uygulamasından çağırmak için statik uzantı kimliğini bilmeniz gerekir. Bu kimlik, Chrome uzantınızı yüklediğinizde gösterilen chrome://extensions sayfasında veya uzantı yüklendikten sonra Chrome Web Mağazası'nda bulunabilir. Bu sayede web uygulamanız, iletişim kurmak istediği tam uzantıyı belirtebilir. Ardından, chrome.runtime.sendMessage numarasını arayın ve uzantıya göndermek istediğiniz mesajla birlikte uzantı kimliğini iletin.
const STATIC_EXTENSION_ID = 'abcdefghijklmnopqrstuvwxyz'; // found from chrome extensions page of chrome web store. const callExtensionAPI = function (method) { chrome.runtime.sendMessage(STATIC_EXTENSION_ID, { methodName: method, }); }; callExtensionAPI('callRestart');
Web sayfalarını mesaj iletme için uzantılara bağlama hakkında daha fazla bilgi edinmek için lütfen bu dokümanı inceleyin.
Not: Uzantılar ve web uygulamaları, birbirleriyle rastgele iletişim kuramaz. Uzantı, yalnızca manifestinin externally_connectable bölümünde listelenen alan adlarından gelen mesajları dinlemeye çalışır. Benzer şekilde, bir web uygulaması iletişim kurmak istediği uzantının statik kimliğini bilmelidir.