Link to add external PWA to homepage - progressive-web-apps

We want to make our own app store as a website where all the "apps" are PWAs. Since people aren't yet used to the "Add to home screen" feature of PWAs, we want to make all the apps in our app store instantly launch the "Add to home screen" feature of the PWA.
For example, https://pwa.rocks/ is a nice "app store." But to add it to the home screen, users have to first navigate to the page, and then they are prompted to add it to the home screen. We want to skip step one entirely.

Your use case seems prone to abuse and has the potential to do serious damage both to your brand as well as the general perception of PWA's by your customers.
However, to answer your question, you could try using frames or iframes to achieve this. Here are the criteria to get the Add to Homescreen banner to show up:
The web app must not already be installed
Must meet a user engagement heuristic (currently, the user has interacted with the domain for at least 30 seconds)
Must have a web app manifest that includes:
short_name or name
icons must include a 192px and a 512px sized icons
start_url
display must be one of: fullscreen, standalone, or minimal-ui
Must be served over HTTPS (required for service workers)
Must have registered a service worker with a fetch event handler
When these criteria are met, Chrome will fire a beforeinstallprompt event that you can use to prompt the user to install your Progressive Web App.
Other browsers have different criteria for installation, or to trigger the beforeinstallprompt event.
Source:
https://developers.google.com/web/fundamentals/app-install-banners/

Related

How to share an image from gallery with my flutter app?

Can anyone point me to a library or advice on how I can go about sharing an image from the gallery with my app using the share button? I want to have my app appear in the list of apps to share with. There are libraries such as [share] https://pub.dev/packages/share that allow you to share content from your app with other apps but it doesn't do what I am looking for.
TL:DR Coming from android,you can do this with a content provider. then using platfrom channels get it to flutter.
Allowing Other Apps to Start Your Activity
For example, if you build a social app that can share messages or photos with the user's friends, you should support the ACTION_SEND intent. Then, when users initiate a "share" action from another app, your app appears as an option in the chooser dialog (also known as the "disambiguation dialog")
To allow other apps to start your activity in this way, you need to add an element in your manifest file for the corresponding element.
When your app is installed on a device, the system identifies your intent filters and adds the information to an internal catalog of intents supported by all installed apps. When an app calls startActivity() or startActivityForResult(), with an implicit intent, the system finds which activity (or activities) can respond to the intent.
read more from docs
I guess you are searching for something like explained here:
https://medium.com/flutter-community/receive-sharing-files-to-flutter-app-from-another-app-7a84c0c0cd88
You could also try this flutter package: https://pub.dev/packages/receive_sharing_intent

The developers of this app have not set up this app properly for Facebook Login?

I'm trying to make a login with Facebook available in my script. I've done everything, but when I attempt to login with a Facebook account I get this error from Facebook:
Error
App Not Setup: The developers of this app have not set up this app properly for Facebook Login.
Here's error screenshot:
Any ideas?
the problem was you have to set
Do you want to make this app and all its live features available to the general public?
set status and review to ON and problem solved
enjoy coding
With respect to the all the other answers, here's the screenshot to help someone.
Go to https://developers.facebook.com/
Click on the Apps menu on the top bar.
Select the respective app from the drop down.
The circle next to your app name is not fully green. When you hover mouse on it, you'll see a popup saying, "Not available to all users because your app is not live."
So next, you've to make it publicly available.
Click on setting at left panel. [see the screenshot below]
In Basic tab add your "Contact Email" (a valid email address - I've added the one which I'm using with developers.facebook.com) and make "Save changes".
Next click "App Review" at left panel. [see the screenshot below]
Look for this, Do you want to make this app and all its live features available to the general public? and Turn ON the switch next to this.
That's it! - App is now publicly available. See the fully green circle next to the app name.
Since the UI of the facebook has changed recently, here's the latest update for setting the sandbox mode ON/OFF :
Go to https://developers.facebook.com/
Click on the Apps menu on the top bar.
Select the respective app from the drop down.
Go to 'Status & Review' from the table in the left side of the page.
Do you want to make this app and all its live features available to the general public? - Select switch to set YES/NO value.
Update:
The YES/NO button will be disabled until and unless you provide your contact email.
Go to "Settings" in the left menu.
Update your Contact Email.
Hit the "Save" button at the bottom of the page.
Update:
'Status & Review' is replaced by 'App Review' now
If the app is still in private mode (Status and Review set to NO), then only Facebook users with role in the app can login.
That unless you set it to public (Status and Review set to YES).
To add more users to be able to login to a private app:
Go to https://developer.facebook.com
Go to Apps -> "Your app" -> Roles
Choose Add Administrator,Developer or Tester.
Many reasons including:
Sandbox mode is ON
Domain name is different
Site URL is different.
This error also occurs when you try to log in in your test version of the Facebook app and you have not added the user you are trying to test the log in with in the Roles -> Testers section.
To fix it, just add the email address of the Facebook account you are trying to log in with in the section above.
Finally, make sure the user you added accepts the request sent before you try to test otherwise the log in process will fail in the second screen just after the user accept the conditions.
Make Sure in left panel App review tab selected (Your app is currently live and available to the public.) tab is ON and App status is GREEN
Happy Programming
And addition to all these beautifull comments dont forget to Start A Submission
There are a bunch of possible things which could trigger this error:
In your case, you just need to add your facebook account into either tester, developer or admin of your facebook app as you want to use that account to test.
But if you see the error upon clicking connect to facebook(before you have chance to enter facebook credentials), then it means your current facebook account detected from cookie is not a valid tester/developer/admin account for your app.
Your could either add your account in or just hit facebook.com and sign out(to remove the undesired cookie).
I had the same problem but now here is how I solved it
Go to https://developers.facebook.com/
• Click on the Apps menu on the top bar.
• Select the respective app from the drop down.
• Click Settings from the table in the left side of the page
• Then under the Contact Email type in your email you would like to use
• Then click save settings button
• Go to 'Status & Review' from the table in the left side of the page.
• Do you want to make this app and all its live features available to the general public? - Select switch to set YES/NO value.
For other users that run into this issue, the app I was testing against was a test version of our production app and didn't have the option to turn status and review to ON as others have mentioned here.
The fix was to create a new app which is not a test app, and configure it like the production version. The non-test version allows the option to turn status and review to ON.
My specific use was testing a user registered with a phone number instead of an email address. I tried adding that user into different roles of our test app (Developer and Tester), but to no avail. My guess is it has something to do with the user not having an email associated with it.
Here's more info on test apps: https://developers.facebook.com/docs/apps/test-apps
Hemang's answer was right, BUT, there's one extra step you'll need, which is to add a Facebook App ID. (I discovered I was missing this part):
Once you've done that in addition to Hemang's answer, you'll be good to go!
Okay - sandbox is off, domain has to be correct because 99% of the users can reach the app, and "all its live features available to the general public" is set to yes.
Now, You need to add a "Privacy Policy URL" in the App Details tab (developers.facebook.com).
This is a new Policy of Facebook.
This resolved my issue if you do not want to make the app available to the public (keeping Status & Review on NO)
I had to sign out of the previous account on the Facebook App and also remove the Facebook account in Settings. Removing just from the Settings will not remove the error because the App itself still has the previous account logged in.
If you have set your Roles as Administrator/Developer/Tester, you can put in that account login info in and it should work then.
do setup by following bellow link and domain name you need to mention as like wht you have mentioned in facebook app domain name.
Go to https://developers.facebook.com/
Click on the Apps menu on the top bar.
This is because you didn't make your Facebook app live. For this go to:
Facebook developer page->Select your app->you will see top of the right your live option is disable and click to enable it->It will refer to you in "basic setting section"->You have to add "privacy policy url" and "Terms and services url" also you may select app category->then save the setting.
Note: You can use any blogspot or website to make your privacy policy also terms and condition page.Both I gave same url which worked.
after a lot of tries, I've read in other topics which someone said "delete all your apps and create it again". I did that but, as you can imagine, a new App will create a new Application ID on Facebook's page.
So, even after all the "set public things" it didn't work because the application ID was wrong in my code due to the creation of a new App on Facebook developer page.
So, as AndrewSmiley said above, you should remeber to update that in your app #strings
Set LoginBehavior if you have installed facebook app in your phone
loginButton.setLoginBehavior(LoginBehavior.WEB_ONLY);

Redirect user to Phone Settings windows phone 8 application

I am trying to make a timer app and I need to prevent the screen from timing out. Since Windows Phone does not allow me to control that, I want to display a pop up to the user, giving him/her the option to be redirected to the phone's Settings page so that he/she can manually set the screen timeout.
All of the available URI schemes for the Settings page are listed here:
http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662937(v=vs.105).aspx
The URI scheme you're looking for is...
Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-lock:"));
3rd party apps
Lots of 3rd party app have URI schemes as well, there's a handy list on the Nokia Developer Wiki:
http://developer.nokia.com/Community/Wiki/URI_Association_Schemes_List

How to launch iOS app via custom URL and allow to open a webpage if it's not installed?

I'd like to be able to send invitation in an email to a specific "event" happening inside my iOS app. So I figured I'd need to use custom URL. That's fine.
But I'd also like to be able to handle the user that doesn't have the app installed yet, to be taken to a mobile Safari and to the webpage with installation instructions for the app.
What would be the best way to do it?
I could try the following:
In the email I send a link to a http://www.example.com/joinevent/?id=foo
User is taken to a Safari webpage that sends a redirect to mycustomscheme://joinevent/?id=foo
If the user doesn't have the app installed this redirection won't work and he stays in the Safari - I could then handle the displaying of installation instructions probably.
But this approach doesn't seem "natural" for me. Is there a better/more native way to do it?
Try http://rdrct.it
It is a web service that allows you to achieve exactly this functionality very easily.
Full disclosure - I created rdrct.it
Here's the basics:
Login to the site, create a project for your particular app. Choose a unique code (this could be the name of your app).
You'll then be provided with a URL in the form: http://rdrct.it/uniqueCode
Once you've done that, you need to register the app's ID in the app store, and also details about the custom URL scheme. Tick "Auto-redirect" - what it will then do is try to open the app, and if that fails, it will automatically send the user to the app store.
If the app is opened, then the querystring is also passed to the app, so in your example case, the device will have been served: mycustomscheme://joinevent/?id=foo
It also works across multiple device types, so if you have the app available for Blackberry, Android or Windows Phone, then it will also do the same for those depending on which device type the user is using.
Like I said, I created it, but it should solve your problem.
If you are using Distimo to track you app analytics, they provide a shortlink to your apps that can be used also used to track conversions. It shows a custom page depending on the device used to access. This is especially convenient if you have the same app published in the AppStore, Google Play, Amazon, etc.

Can an application be rejected if on 1st launch user is asked to Activate app via Safari?

possibly a simple question, but I couldn't find definitive answer (see below for excerpt from HIG) myself that would state below scenario as 'unacceptable' and will result in app being rejected:
On 1st application launch after installation user will see an alert
asking to activate the app.
Tapping "Activate" will open Safari and display a web page with
"Activate" button.
Tapping it will launch my app via URL-scheme, pass some server
generated data and allow user to enter main UI.
The application will be locked until user activates.
If you need more context on why and how, please see this answer.
Mobile HIG (as of 2011-10-12):
"If possible, avoid requiring users to indicate their agreement to your EULA when they first start your application. Without an agreement displayed, users can enjoy your application without delay. However, even though this is the preferred user experience, it might not be feasible in all cases. If you must display a license agreement within your application, do so in a way that harmonizes with your user interface and causes the least inconvenience to users."
Well there's similar cases where an app is almost useless until the user registers to some service, take Instagram as an example.
I'd suggest however that you solve this by not forcing the user to leave your app. Instead, present the user with a web view within your app where you politely describe why it is necessary for the user to go through the activation process.
We've done something similar before (EULA presented modally within a web view on first launch, which could only be dismissed by accepting it) and it was approved right away.