How to launch an external website from a chrome app? - google-chrome-app

I'm looking to link to a sign up page on an external webapp via a chrome app. The simplest way to manage this seems to be to open a new tab in the chrome browser (not a new webview in a new window of the app).
Tabs seem deprecated and a webview appears very unofficial and unsafe. Basically, is there a way to effectively do this:
Sign up
And the bigger question of course: is there a better way to approach what seems like a simple problem?

Your conceptions, "Tabs seem deprecated and a webview appears very unofficial and unsafe", seem very strange. tabs is simply not enabled for Apps, and <webview> is alive and well.
But if you must open it in the browser, window.open will do the trick. See also this question.
Edit: Also, upcoming is the chrome.browser.openTab API. Leave your feedback if you have use cases for this feature.

Related

Is crosswalk-project still available or is there an alternative

I don't like how my Android WebView app displays on some devices, so when I found out that crosswalk-project could fix that, I went to crosswalk-project.org but the website was down. Is there a way around it or an alternative to it?
Or will using WebChromeClient instead of WebViewClient fix it?
I want my WebView app to display the same across all devices and the Javascript "share" feature in one of the web pages of the website should work.

Close browser window and open PWA once PWA installed

I have Chrome installing my PWA on Android - once it's installed I'd like to automatically close the browser window it was installed from, and open the PWA (so the user doesn't continue in the browser window, thinking they're using the PWA) - is this possible?
i was looking for a similar solution and have not yet found a way to do that. I try to describe my findings so far:
CLOSING THE BROWSER WINDOW:
as described in this answer window.close() can only be called on windows/tabs that the script opened itself. Some possible workarounds are being discussed there.
OPENING THE PWA RIGHT AFTER INSTALLATION:
Google describes in their WebApk Fundamentals Article it as follows:
When a Progressive Web App is installed on Android, it will register a set of intent filters for all URLs within the scope of the app. When a user clicks on a link that is within the scope of the app, the app will be opened, rather than opening within a browser tab.
I was hoping that would work also right after the installation/Adding to homescreen from the still open browser window.
Based on testing with two Android devices it seems as if at the moment the user has to manually open the PWA from the homescreen once for chrome/android to interpret the scope of the web apps manifest.json as intend to open the page in standalone.
This is sad for even iOS seems to handle that different.
Maybe I am overlooking something in the Google Article? I also do not fully understand androids intent API - so maybe there is some way to still achieve that (?)
Based from this blog post:
When the PWA is installed, it will appear in the home screen, in the
app launcher, in Settings and as any other first-class citizen app in
the OS, including information on battery and space used in the system.
There's a tracking event when the user opens the app from the home screen. That means the user has clicked the app's icon or, on Android with WebAPK support, also clicked on a link pointing to the PWA scope and need to close the browser.
start_url: '/?utm_source=standalone&utm_medium=pwa'
Also, the following script leaves us a boolean stating if the user is currently in a browser (true) or a standalone app mode (false)
var isPWAinBrowser = true;
// replace standalone with fullscreen or minimal-ui according to your manifest
if (matchMedia('(display-mode: standalone)').matches) {
// Android and iOS 11.3+
isPWAinBrowser = false;
} else if ('standalone' in navigator) {
// useful for iOS < 11.3
isPWAinBrowser = !navigator.standalone;
}
I had this problem on Android with Chrome. The change that made the difference is adding "target='_blank'" to the link. It looks like:
window.addEventListener('appinstalled', function(event){
setTimeout(function(){
presentToUser("<a href='https://myhostname.com' target='_blank'>Go to App</a>")
}, 10000)}
});
The ten second timeout is to give Android the time to set up the App on the home page.
I had made that adjustment earlier; possibly I can remove it?
But setting the target was what made this work.
The App opens over the top of Chrome, obscuring it.
So closing the browser is not immediately required but is recommended.
In the new versions of chrome, after installation in android it associate all the links in the "scope" to the PWA application, if you try to open a link in your chrome browser it open directly in the application.
hope that will answer your question

Register app to open from Safari's "share" or "open in..." dialog not working. (though works from other apps)

I am trying to register my application to show up in Safari's "Open-in..." dialog when a user clicks the share button on any html webpage.
I have added the public.html (and public.data for good measure) content types to the Document Types in Xcode, as suggested in many answers: (See this question, this question, or this apple documentation.)
And, it seems to work. If I open a .pdf in Safari, I get the "open in My App" dialog at the top.
I can also use the "open in..." dialog from other apps to share the document with My App.
To test it, I built DocInteraction as recommended in this answer, and if I create an html file, My App shows up in the share dialog.
However, My App still doesn't show up in the share dialog in Safari.
When I run it in iOS7 on the iOS Simulator, I only get Mail, Twitter, and Facebook showing up:
The same goes when I test it on my real iOS device:
BUT, I would like you to note that it does seem to be possible! Look at the above screenshot.. SOMEHOW, Weibo has managed this feat. I don't know how, but for some reason Weibo shows up in this list even though My App doesn't.
And you know, actually, this sort of makes sense, given how many apps can probably open html pages. Here is DocInteraction running on my iOS device trying to share an html page:
There it is! My App! (It's actually called "Wulu Podify"). But there are so many apps who are hungry for .html pages, I guess Safari thinks it might be a bit overwhelming to provide them all.
BUT, this still begs the question, how did Weibo get themselves on that list? But, some further digging seems to show that actually Weibo seems to have gotten itself on EVERY list.
I'm not sure how they managed it, but maybe they are going about this differently.
Weibo's "I-will-open-any-document-you-throw-at-me-c'mon-try-it-c'mon" approach might solve this problem, but it's not ideal. I really only want to open html pages.
So. I guess my questions is three-fold:
Is there a way to actually have my app show up in Safari's "Open In..." dialog?
If not, how can I achieve what Weibo achieved, and show up in ALL the dialogs?
Should I want to do that? It seems like it might be a bad idea.
Thanks for any help! I've been at this for a while!!
Update:
So, actually, I didn't realize it but I think Weibo might be a built-in option just like Facebook and Twitter. I assumed it was just there because I have it installed on my phone, but maybe it was one of the iOS6 defaults. I say that because when I test on the iOS6.0 Simulator, I suddenly see Weibo show up in the share screen, even though I definitely haven't installed it on my simulator.
So maybe there is no way around this except for having it built in to Safari by apple..
I know this is years later, but if anyone runs into this old question, as of IOS 8, Apple now allows app creators to make "extensions" which do allow you to add your app to the share menus.
Here is some documentation:
https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html
I fear what you want is not possible.
There is a difference between the Share dialog and the Open With dialog.
For the latter it's possible to register your app with document interaction, but the Share dialog only provides the native types (which Weibo is one of - see here: UIActivityViewController).
Also see this question on StackOverflow: is-it-possible-to-add-an-app-to-the-native-share-dialog
its , called extension , fist create a new project and than -->
file ->new -> target -> application Extension -> ####
and select your required extension and done....

How do I develop my website to work with the "reader" icon on iPhone?

This morning I had a look at my blog on my iPhone and noticed that when I view a specific page a Reader icon comes up next to the URL in the address bar:
When I press it, I get an interface like this:
This functionality was completely unintentional (I wasn't even previously aware of it) but I think really nice, so I want to try and implement it intentionally on a few other pages on my website (and other sites that I work on).
How do I work with and enable this feature?
You don't need any work on your site. This is build-in feature on iOS Safari.

IPhone Safari 302 Redirects open new windows

I have a fairly standard ASP.Net web application which is used via mobile safari on the iPhone.
Some users who have a link to the web application placed on their desktop via profile are reporting that when navigating between pages (which I do on the server with Response.Redirect after specific events or via standard anchor tags in other cases (no target specified)) that Safari opens a new window instead of reusing the existing window.
Because of this, any login token/cookie etc (i'm using the built-in ASP.Net membership stuff), is now gone for that new browser window and the login prompt is shown.
The problem doesn't happen every time, and I can't seem to replicate it on my device (but i'm not deploying the shortcut via profile)
As you can probably imagine, it's quite frustrating for the users to have to log in every time, and you can't fix an issue you can't replicate.
My question is, has anyone heard of this issue and/or know a workaround?
The app is NOT iPhone specific, that is, it is used in a full desktop browser as well, and the logins stay like you'd expect there - and the same window is reused repeatedly.
I've considered a few possibilities, but have been drawing a blank as far as what might be causing this or how I can resolve it.
Do you have any iPhone meta tags set (to remove the url bar or the toolbar, for instance?) If you do, the phone will assume it's a native web app, and urls will open in a new safari window, like they would for any other native app.
If you are taking advantage of using the web app in full screen mode (where it is bookmarked to the launch screen next to native apps) you can prevent it from jumping out of fullscreen mode by and in to safari replacing type links with javascript.
location.href = '/yourPath';
This is a nifty trick which even works if you are linking to an outside URL, like doing an OAuth to Facebook and back.
I have a blog post on this here: http://www.aaroncoleman.net/post/2011/07/29/Keeping-iPhone-Web-App-in-Fullscreen-mode-from-Homescreen-Launcher.aspx