When user clicks link with custom protocol (like myapp://superlink
)
I need either launch an app or allow user to download and run configuration app
I am looking for cross-browser way to check if custom protocol is registered
I've tried to determine this by checking user agent server-side (for IE)
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\User Agent\Post Platform] "myapp"=""
sends
`....NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; **myapp**`
as user-agent
This is good, clean way, easy configuration:
just download .reg file and run it or propagiate via ms windows policy
I can't fix this for Chrome and Firefox
Are there any client-side solution (in js)?
My enviroment: IE8+, Chrome (latest), Firefox(latest)
There is this old tricks that it always never fails me.
The core functionality that you need is setTimeout
. I will tell you in detail:
setTimeout(function() { window.location = "http://itunes.com/app/yourapplocation"; }, 200); // once you do the custom-uri, it should properly execute the handler, otherwise, the settimeout that you set before will kick in window.location = "myapp://superlink";
Now you mentioned that it maybe a link or links so I made this nice function just for your convenience:
HTML code
<a href="myapp://superlink" data-href-alt="http://itunes.com/app/yourapplocation">Click here</a>
JS code
$("a[href*='myapp://']").click(function(e) { var el = $(this); setTimeout(function() { window.location = el.data("data-href-alt"); }, 200); // once you do the custom-uri, it should properly execute the handler, otherwise, the settimeout that you set before will kick in window.location = el.data("href"); e.preventDefault(); });
Hope this will help you :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With