Has anyone successfully created a Google Chrome Kiosk App that can handle pop-ups?
My issue: We're trying to use Chromebits for public access catalogs at a public library. Locking down the kiosk app by domain works perfectly to ensure the Chromebits are only used with the catalog. However, an area of our catalog allows users to view their accounts. The account "edit" section is a pop-up, and the kiosk app will not allow it. Any workaround for this? Any other ideas?
I'm using "Kiosk" from the chrome app store.
Related
After I saved my PWA (Test App) built using Create React App to homescreen and launched the app in standalone mode on android using chrome and iOS using safari. Then in the app I initiate Firebase method signInWithPopup(GoogleProvider) the device asks me if I want to open the action with Test App or other browsers installed on device i.e chrome, firefox. If I select to open with my Test App the popup opens and I select the correct Google account.
Error: After the google account selection the popup closes without ever redirecting back to my Test App.
If I instead to open the Firebase method signInWithPopup(GoogleProvider) with chrome browser and not my Test App the popup opens for google account selection and after I select the google account the popup closes and redirects back to the Test App momentarily and then
Error: directs back to chrome tab where is asks for google account to select while showing a loading indicator, and just hangs there.
There are no console error or warnings that come up .
Note 1: The error of popup not closing and staying in loading also occurs if I add the App to homescreen on a Windows 10 x64 machine using Version 64.0.3259.0 (Official Build) canary (64-bit) and launch as a standalone window.
Note 2: The error also occurs for signInWithPopup(Facebookprovider) and signInWithPopup(Twitterprovider) Also If I uninstall app from Homescreen and launch purely in browser the signing in OAuth flow works fine.
Note 3: After further troubleshooting it seems the error more specifically occurs when user input is required in the OAuth popup.
i.e If for example if user has previously given the Test App permissions through Facebook, the flow works fine and the popup closes. Also if only a single google account is detected and it has previously given app OAuth permissions then the popup works as it should. But If multiple google accounts exists on device then the user has to input a selection of which account to sign in through --> this leads to the previously mentioned error again. And using Twitter OAuth the error occurs every-time because twitter popup requires user to select Authorize App every-time.
UPDATE: I believe this may have something to do with google chrome recent changes to OAuth from Webview.
GIf of the error on windows machine: notice the popup for twitter auth never closes, even after authorizing the app, same thing occurs for google and facebook OAuth.
Reading Google documentation:
https://firebase.google.com/docs/auth/web/google-signin
Authenticate with Firebase using the Google provider object. You can prompt your users to sign in with their Google Accounts either by opening a pop-up window or by redirecting to the sign-in page. The redirect method is preferred on mobile devices.
So you have 2 options:
firebase.auth().signInWithPopup(provider)
firebase.auth().signInWithRedirect(provider)
The second must be used when you are into a mobile device.
So the question is: How I detect when I running into a mobile device ?
Code must be something like:
if ( isInMobileDevice) {
firebase.auth().getRedirectResult().then(function(result) { .... }
}
else {
firebase.auth().signInWithPopup(provider).then(function(result) { .... }
}
Sorry, Im still searching the way to get the correct value (true/false) into "isInMobileDevice"
you can stablish in the manifest of the app "display:standalone" then detect the launch mode like this
function isRunningStandalone() {
return (window.matchMedia('(display-mode: standalone)').matches);
}
...
if (isRunningStandalone()) {
/* This code will be executed if app is running standalone */
}
Good news, fixed in Chrome Canary
https://bugs.chromium.org/p/chromium/issues/detail?id=771418#c84
Im developing an App Engine project for a customer, I want that this project can be installed as an App from the Chrome Web Store, for a specific domain (not mine).
I have enabled the Marketplace SDK and API in my project, and tried to upload the ZIP, but I only can select my domain if I want set the App as private.
I have tried to upload the ZIP with one account from that domain, but when I'm going to publish the App the web gives me an error saying that I dont have permissions to publish because I'm not the owner of the console API Id (because the project stills in my main account, another domain).
Its possible publish the App as private to another domain, that is not the same domain where the App Engine project is?
You will need to publish it as a private app then choose only a certain people to share it. It's the only way.
The instructions for publish a private Chrome app for a specific users is found in Publish a private Chrome app
Users from the same Chrome domain will see their organization's
private apps in a private collection in the Chrome Web Store.
Administrators can choose which users they want to be able to publish
private apps for their organization by clicking this checkbox in the
Admin console under Device management > Chrome management > User
settings > Chrome Web Store Permissions.
When you click Allow users to publish private apps that are restricted
to your domain on Chrome Web Store, an additional setting will appear
to Allow users to skip verification for websites not owned. This
second setting allows users to create bookmark apps pointing to
websites that they aren’t the webmaster for.
How to publish private Chrome web apps Publishing a private app is
very similar to publishing a public app to the Chrome Web Store. The
only difference is there's an additional step of restricting access to
the app to your domain:
Sign in to the Chrome developer dashboard.
Accept the Terms of Service.
Add a new item and upload your app as a zip file.
Set the promotional image you want to use, and the category, and language for the app.
Select Private and Everyone at .
The app is now published to the Chrome Web Store. If you have
restricted the visibility of the app to your domain, only users in
your organization signed in to their G Suite accounts will be able to
see the app
I'm new to making chrome apps and extensions, working on my first app. I need access to alist of the installed apps on chrome with their relevant details and icon, so I used chrome.management. However, when I try to use it in my app, I get the error
'management' is only allowed for extensions and legacy packaged apps,
but this is a packaged app.
Looking at the api page, chrome.management is indeed not listed under the "Apps" tab, but the "Extensions" one.
Is there any other way I can have access to the information in an app? Chrome app launcher did it... not sure if there were any super secret special permissions involved.
How can I create a Chrome extension that:
provides an application icon in the application menu and on the desktop
on click of the icon launches a particular website in Chrome's application window mode
chrome.management API to the rescue. You can create a website-type app programmatically with chrome.management.generateAppForLink.
Please note that the API has an undocumented restriction, it has to be called from a user gesture.
The closest you get to create an icon on the desktop/dock is chrome.management.createAppShortcut.
Display options to create shortcuts for an app. On Mac, only packaged app shortcuts can be created.
This automatically highlights 2 caveats:
It does not do so silently, it shows a dialog to the user
In case of OS X, website apps are not eligible
Note that your app will still automatically appear in the Chrome's App Launcher.
I need to create a web application which will be stored in the traybar of Windows, this to prevent users from accidentally close my application (without the need of a pre-close alert message).
I thought that Google Chrome's background apps could be the right way to go, mostly because I don't need cross-browser compatibility and I have to choose which browser my users will use to run this web application.
The only problem is that I don't understand if I can achieve what I need with this feature.
I've found only this example of background app in Chrome countdown app
But this app uses the "background page" feature, that is different from what I'm looking for.
How can I let a Chrome app be minimized in the traybar (or even in the taskbar would be ok) instead of be closed?
Try to use node-webkit (chromium + node.js) for it: https://github.com/rogerwang/node-webkit
It allow to create any web-app and it support tray icons: https://github.com/rogerwang/node-webkit/wiki/Tray
You can download my windows example app here: https://mega.co.nz/#!xQMzgbxD!S58G-V23QLNRDFC10xso41-T2V8OZQVsQEH-lr46R3s
If you want exactly chrome, try this NPAPI plugin example: http://minimizetotray.googlecode.com/files/SourceCode.zip from http://habrahabr.ru/post/73003/
Unfortunately, I don't think you will be able to achieve exactly what you're after. You might be able to combine the two solutions below to nearly achieve your requirements. However, I don't think the type of control you are after is available via Google Apps.
Google App Launcher
The Google App Launcher would fulfill the "stored in the traybar of Windows" requirement.
The Chrome App Launcher is the hub of all your Chrome apps and with it
you have quick access to all of your apps from the desktop. When you
install an app from the "For Your Desktop" collection of the Chrome
Web Store, you get the App Launcher. The App Launcher requires you to
sign in to Chrome to enable apps that need access to your Google
account.
Manage apps
When you download a new app that enables App Launcher, the apps from
your Apps bookmark on Chrome New Tab page will also appear in the App
Launcher. Managing apps in the App Launcher is simple.
Add more apps: Click the Chrome Web Store button in your apps list and explore the apps in the store.
...
Background: Extending Your App's Life
You mentioned background apps in your question but I would recommend you explore it further. It essentially provides the "prevent users from accidentally close my application" requirement that you stated. This isn't foolproof (see bold sentence below) but it is about as close to the requirement I think you will be able to achieve.
As of Google Chrome 10, the background feature lets a hosted app run
as soon as the user logs into their computer—before the user launches
Chrome or the app—and to continue running even when Chrome or the app
has no visible windows. However, if the user explicitly quits Chrome,
the browser and app both exit.