Launching Applications from the Web: The Power of Custom URL Schemes

Alireza Hamid
3 min readAug 13, 2023

--

When building web applications, there often arises a need to communicate or interact with external applications, be it on mobile or desktop. One of the most streamlined ways to do this is through custom URL schemes. In this article, we’ll explore how to utilize window.location to launch an application using custom URL schemes.

What is a Custom URL Scheme?

A custom URL scheme is a unique protocol that can be registered by applications. Instead of the familiar http:// or https://, an app can register something like yourappname://. When a user clicks on or is redirected to such a URL, the associated application will be triggered to launch.

Implementing with window.location

One of the simplest ways to redirect a user to a custom URL scheme is by setting the window.location property in JavaScript:

window.location.href = 'coolapp://';

When this code runs, the browser will attempt to open the application associated with the yourappname:// scheme. If the application is installed and has registered this scheme, it will launch. Otherwise, typically, nothing will happen.

Mobile vs. Desktop

On mobile devices, custom URL schemes are commonly used for deep linking into apps from the web. For instance, if you’ve ever clicked a Spotify link in your mobile browser and the Spotify app opened, you’ve experienced this in action.

On desktops, the process is a bit more complex due to stricter OS permissions and browser security policies. However, applications can still register custom URL schemes. The process often involves modifying system settings like the registry on Windows or Info.plist files on macOS.

Potential Pitfalls

  1. Fallback Mechanism: It’s vital to handle the case when the app isn’t installed. Consider redirecting users to an app store or providing clear instructions to download the app.
  2. Browser Differences: Browsers might handle custom URL schemes differently. Some might display security warnings, while others might silently fail. Thorough testing across browsers is crucial.
  3. Security: Ensure that the custom URL scheme doesn’t become a vulnerability. For instance, avoid passing sensitive information through the URL.

Advanced Alternatives

  1. Universal Links (iOS) & App Links (Android): Allow you to use regular HTTPS links to both open your app and provide a fallback. Requires additional setup on both the app and server side.
  2. Browser Extensions: Create extensions that listen for events from your web app and trigger the desktop application.
  3. Local Web Server: Some desktop apps run a tiny local web server to communicate with web apps. The web application can send requests to localhost:PORT, which the desktop app interprets.

Conclusion

Custom URL schemes provide a powerful mechanism to bridge the gap between web and native applications, offering a seamless user experience. While they come with their own set of challenges, with the right precautions, they can elevate the interoperability of your applications, delivering a richer and more integrated user journey.

Happy coding 🧙‍♂️

--

--