How to use Google extensions API to launch a desktop application? - google-chrome

I do not really find a google extensions API that launches a desktop application, but I see WebEx did it. https://meetings.webex.com/collabs/#/home Here when you host a meeting, it requires you to install the WebEx Chrome Extension. The extension then launches the desktop application. What is the magic behind it?
Is it the technology they use? https://developer.chrome.com/extensions/nativeMessaging
I see an API called "runtime.connectNative". Does it start a desktop application?
HINT: NPAPI already expired for Chrome. So NPAPI is not what WebEx used

Related

Can extensions be run on Chrome OS in kiosk mode?

Google is deprecating Chrome apps in favor of Progressive Web Apps (PWA) or Chrome extensions. This leaves extensions as the only way to access Chrome device APIs. I'm looking for a way for my PWA to run along with a Chrome extension in kiosk mode but I'm not sure if it's possible.
The reason I need my PWA to access Chrome device APIs is to get a unique identifier per device to decide which content to display.
As per chromeos.dev: "Previously, Chrome Apps had extra functionality available to them in kiosk mode that is not currently supported by web apps alone. You can continue to use some of this functionality by deploying an extension with your kiosk web application."
Source: https://chromeos.dev/en/education/connecting-an-extension-from-a-kiosk-pwa
It only talks about sending a message from PWA to extension in order to execute a chrome API (like restart) but doesn't talk about how to send information back from extension to PWA. We are also stuck in the same boat- looking for a unique identifier so as to throw content on the chromebox running the PWA. Currently we use chrome.enterprise.deviceAttributes to get serial number and directory device ID in kiosk mode and would need the same once we migrate to PWA. Any luck on this?

chrome.enterprise.deviceAttributes availability for force-installed PWAs in chrome enterprise

I'm trying to determine if I can access any browser api for chrome OS that will allow me to identify the device that its running on when the application has been force-installed in kiosk mode as a PWA.
We're running into exactly the same issue right now. The correct path seems to be to create a PWA and to connect it to a (pre-installed) extension that has access to the enterprise.deviceAttributes:
See https://developers.chrome.com/apps/migration:
"If there is a capability that your Chrome App has that the regular web platform can't provide, it might be available as an extension API. In this case, you use a progressive web app together with an externally connectable extension your web app can send messages to."
enterprise.deviceAttributes are only accessible if the calling App/Site is pre-installed to the device and not loaded dynamically, so it cannot run in the PWA by design.
But with this tutorial, it seems possible:
https://developer.chrome.com/extensions/messaging#external-webpage
We're looking into that right now and will post our progess here.

Developing a Chrome Kiosk App on a non-managed Chromebox

tl;dr I want to use an API that only works for Chrome Kiosk Apps. How can I run my app locally as a kiosk app such that I can access these APIs?
Hey All,
I am trying to develop an application that uses the chrome.audio API. Though the docs do not say so, upon loading an unpacked app on my Chromebox I get a warning saying "'audio' is only allowed to run in kiosk apps sessions, but this is a regular user session."
So I began trying to get the app launched in kiosk mode. I have modified the manifest.json file to claim kiosk mode: "kiosk_enabled":true. I navigate to chrome://extensions and click "Manage Kiosk Applications" but when I put in the app ID provided when loading my unpacked extension, I always get a message saying "Invalid App ID".
It has been suggested to me that the only way to load a kiosk app is either through the admin console (not applicable to me since my device is unmanaged) or by publishing the app to the Chrome Web Store, which is crazy overkill since I have not even developed my app yet, I just want to see if this API can provide functionality I need.
In summary, my question is this:
How can I run my app locally as a kiosk app such that I can access these APIs?

Standalone chrome applications

Currently I am exploring the possibilities and features of Google Chrome apps. As I see to run chrome apps we need to distribute them through chrome App Store. Could we develop a application as a chrome app, which will not need to release to general public or for a limited audience?
Is there anyway that we could package it to native OS executable like .exe in windows or .app in MacOS. So for users who doesn't have chrome installed will also can without any issue. Or at least could we distribute without submitting it to the App Store.
Also I am wondering whether we can run another application through chrome apps? For example I am planing to develop a java application and start with the chrome app.
You can distribute a Chrome App without using the Chrome Web Store, but you'll have to explain to users how to install it, and it's a little tricky: They have to open the Extensions window in Chrome and then drag the installation file to that window. Upon dropping it, there will be a dialog asking them if they want it installed. (They can't just double-click on a file or do anything else that's easy like that.)
Chrome Apps can't directly launch native apps, but they can communicate in various ways with native apps (or any apps) once those other apps are running.
(Some parts of your question are ungrammatical, so I can't be completely sure what you're asking, but the above is what I think you're asking.)
Chrome Extensions are only installable from the Web Store, but Applications can be privately hosted with some provisos: https://developer.chrome.com/extensions/hosting

Difference between a Packaged App and a Legacy Packaged App in Chrome

Basically packaged apps do not appear on the Chrome App Store, but legacy packaged apps do. The documentation states that
Warning: All content in this doc refers to the legacy version of packaged apps. Your legacy packaged apps will still work, but you won't have access to any of the new APIs. Check out the new version of packaged apps; otherwise, you're missing out!
The question is, what will you be missing out when using a legacy packaged app instead of a packaged app ? (apart from not appearing in the Chrome App Store)
Better window geometry control (open outside of the browser), security, access to more powerful APIs, etc.
See http://developer.chrome.com/apps/about_apps.html