Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please redirect the user to the Microsoft Store if they haven't installed the client app #6

Open
Hanzalah-Adalan opened this issue Jun 14, 2019 · 9 comments

Comments

@Hanzalah-Adalan
Copy link
Contributor

Hanzalah-Adalan commented Jun 14, 2019

Please redirect the user to the Microsoft Store Product Details Page on the web or open the Store app directly through Uri Scheme:
ms-windows-store://navigatetopage/?Id=Apps

Currently, if the user click on the "Launch App" in the UWP Companion extension popup, the extension doesn't do anything, not taking the user to the store neither informing them that there's no corresponding app to open.

@Arlodotexe
Copy link
Member

There currently is no way of detecting if an app is installed or not from an extension. I've been researching ways to get this information with help of Partner apps, but it's proven more difficult than anticipated.

If someone managed to find a way to communicate between web extensions and UWP apps, I'd love to know. I'd rather not do it, but the "best" method I can come up with requires partnered UWP apps "fingerprinting" the user to create a key, which can be used to post the list of installed apps to a server. The same key can be generated by the extension to get the list. This method would do the trick, but I'm sure no one would like the fact that I'd have to generate user fingerprints.

I can do this. But I'd need some viable ideas/alternatives.

@Hanzalah-Adalan
Copy link
Contributor Author

owh I see. that's a lot of work.. so, should we close this issue?

@Arlodotexe
Copy link
Member

I think this is actually doable without communicating with a UWP app, but it'd be tricky. I'll keep this thread updated as I go

@Arlodotexe Arlodotexe reopened this Jun 28, 2019
@ghost
Copy link

ghost commented Jun 30, 2019

actually you can work with the app who have implemented there app in the extension to respond to your app "ok" or something like that (since dashlane can communicate with his Chrome and Firefox extension it should be possible), and if your app doesn't receive response, you open the store ?

@Hanzalah-Adalan
Copy link
Contributor Author

@Aelisya as far as I know, Dashlane is a full-fledged desktop app, so it's not containerized by the UWP sandbox, since it has the system wide access, it's easy for them to make their app and browser extension talk to each other.

@ghost
Copy link

ghost commented Jul 2, 2019

I have found a way but it's a bit complicated :
Chrome's fileSystem API can directly write to the user's filesystem.
This API is only available to Chrome apps. So it would use an extension + an app and using message passing to communicate between the extension and app.

it's very complicated but possible

@Arlodotexe
Copy link
Member

Chrome apps aren't the same as Chrome extensions, this API was primarily designed for ChromeOS and isn't backwards compatible. In order to leverage the filesystem for this, the user would need to pick a file manually, and give permission for the extension to maintain permanent access to this file

I've considered lots of ways of doing this. Localhost loopback, using the file system, using the clipboard, generating a code that you enter on one or the other and storing the information on a server to communicate, etc. There are far too many drawbacks to each of these solutions.

I have a much simpler idea:
When the extension tries to launch an app, if the window is still active after a few seconds, show a download link. Problem solved. I just need time to sit down and implement it

@Hanzalah-Adalan
Copy link
Contributor Author

Hanzalah-Adalan commented Jul 3, 2019

@Arlodotexe few seconds is still too long IMHO, maybe anything between 500 ms - 1 second is nice for the sake of increasing the responsiveness.

@Arlodotexe
Copy link
Member

A few seconds was just an example. I'll be sure the experience is of high standards

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants