HTML Service - PWA - google-apps-script

Sorry for a noob question - as I've just started with web development half a year ago..
I need your help regarding setting my GAS app into a PWA. Is there such a possibility? I struggle to find any really helpful resources on how to create a service workers and manifest files to work correctly. It'd be extremely helpful for me to get trained on the topic.
Thanks.

Having a valid manifest.json will enable your application to add to home screen of Android, iOS - Safari only, Chrome - All desktop OS.
You can use this link to generate manifest.json for your application and keep in the root of your project and link it using index.html like below,
You can use Workbox to generate service worker for your application.

I don't know what your GAS app is but if it is based on HTML/JS/CSS you can try www.pwabuilder.com for this purpose. It will give you the manifest and the service worker to put in your code.
You can also try the Lighthouse extension in Chrome and activate it when you are on your site. It will tell you if you app is PWA compatible and what needs work.

Related

Trusted web activity - Digital assets link validation for intranet/private web app seem to be failing

I've followed this doc to
Create a wrapper Android app based on this sample project for my UI application which runs in non-public domain in our corporate servers.
Add assetlinks.json in my Angular 6 PWA application, with SHA256 fingerprints of my release key.
Deployed the signed apk to a Android 4.4.3 device running Chrome Dev 69 and Google play services - 12.8.74.
When I run the application, everything works fine except hiding the address bar, which makes it as a regular custom tab and not the "Trusted web" content.
I don't see any error in the log and not sure how to debug this scenario. Any help on this is appreciated.
Got confirmation from Chrome team that they are using TWA assets link validation in server side using an API call and so this solution wont work for Private web apps. Said that, they are also considering to move that logic to browser to support this use case. Will update here when I have any update on this.
Update: As of Chrome Version 72, TWA(Trusted web activity) if available in Chrome stable version and the web asset validation(to make sure the web page is yours/same as the app its loaded to) happens in browser. So this solution can be implemented for private web apps for hosting inside enterprise environment.
Also, now PWAs can be packed as regular app using TWA solution and uploaded to Play store as an apk file. Documentation on this is still being updated as per one of Chrome developer. But the solution as such is ready for use.

Google User Log-In from Chrome Extension

I am making a chrome extension, and for the purposes of my Chrome Extension, I am wanting users to be able to sign in to their Google account so they can send information to a server. I have been reading about user authentication and whatnot from the Google documents, but this is for apps that are being published into the store, and mine is in development. This is brand new territory for me, and I am lost. I feel like there's something that I must be missing, but I don't know how to get started.
Thanks.
Check this documentation about the quick way of loading up your working directory for testing. Extensions that you download from the Chrome Web Store are packaged up as .crx files, which is great for distribution, but not so great for development.

Citrix Receiver Kiosk App "Unsupported chrome app origin detected"

I searched all over and couldn't find my specific issue here so please excuse me if my search-fu has failed me.
My issue:
I am currently trying to create a kiosk app for my company's chromeboxes. I have the application packaged and published privately on the chrome web store. I get the app to load but once I launch the kiosk app and enter in my company's url I am presented with, "Unsupported Chrome App Origin Detected". The only thing I can find so far about this is to run the flag --disable-web-security. I can only find examples for Windows/Mac/Linux plus that isn't secure. Am I missing something in my Default.cr or manifest.json files? Is this even possible? This is on a vanilla chromebox that isn't part of a Google Apps domain. Do I need to have it added to a Google Apps for Work domain to get this to work? Any help would be appreciated.
Please add your generated chrome extension app id to storefront web.config file. Please have a look at http://docs.citrix.com/en-us/receiver/chrome/1-7/receiver-chrome-deploy.html point 8 at the end on how to do it.
Also please use 1.7 as it supports better Kiosk mode integration.

Decode a chrome app or extension

I found a chrome app for photography effects which works offline perfectly. But it is having limited features. I have some ideas to add for my use. But I'll require to develop complete app. That'll take more time.
Is there any way so I can modify the app for my personal use?
Well!! I got to know that all chrome extensions/apps are made in HTML & JS. So I can easily decode them by using some chrome crx file downloader or directly from its extension folder.

Activate chrome app from web page?

I am building a packaged chrome app (It is needed as I want to access chrome.socket). I have a website from which I would like to call my app (if installed or ask the user to install it) by clicking a link. Is this possible ? Not able to find any easy way for this workflow.
The url_handlers might be the best way to achieve this.
You can also use the externally_connectable manifest property to declare that your website can connect to your app, then call chrome.runtime.sendMessage or chrome.runtime.connect from your webpage and handle it in an chrome.runtime.onMessage handler in the app.
Which one is better suited depends on your needs. The url_handlers is an easier way, but it will permanently assign the URL on your link to your app, so you won't be able to use it for anything else if the app is installed. The externally_connectable is a harder way, but it enables a much more elaborate bidirectional communication between your website and the app.
You can even use a combination of the two approaches, if you need: launch the app using the url_handlers feature, then establish a communication channel back to the website once the app is up and running.
Apps can now (as of Chrome 31 I believe) register to handle urls by adding url_handlers in their manifest and detecting the url causing the app to launch in the chrome.app.runtime.onLaunched event. If the app doesn't launch, your hosted web site will be loaded an can present an inline installation with chrome.webstore.install.