As I understand it, a native Android app must go through a special API to use Host mode which involves the USB OTG spec. However, the WebUSB spec appears to address host mode as the only option (such as on a normal computer) and doesn't mention OTG, so presumably the code for the is all inside Chrome. How does Chrome handle WebUSB on Android, and would that require code modifications vs desktop?
There shouldn't be any modifications needed to share code between Android and desktop. Chrome uses the Android USB host API to communicate with devices. When using an "OTG adapter" this is the API that can be used to communicate with the device. WebUSB does not support the Android-specific "accessory mode."
Related
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?
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.
I'm using google chrome for android on kiosk mode to use my web application. I need to clear or disable his cache without using "More tools and then Clear browsing data". It must be automatic when the server side change.
Is it possible ?
My web application is develop with JSF
Versions :
Chrome 64.0.3282.137
Android 7.0.0
Thanks
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
I'm using jWebSockets to run a small internet app. Even though the website says there is explorer support using a flash bridge and this should be transparent, I can't seem to have my app running on explorer.
Is there something that needs to be done to have support for explorer that I'm missing?
For a Flash WebSocket implementation like this to work, you need to run a Flash Policy File server on port 843 serving a policy file which instructs Flash player to allow outbound socket connections. Obviously, you also need to include the relevant Flash files in your client HTML page. Just follow the instructions in the reference. This specific bridge works with IE8/9 and also other WebSocket lacking browsers with Flash support like the native Android browser (pre Chrome Mobile).