This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.
msLaunchUri() method is a Microsoft extension to the
Navigator interface, which starts a service or app, such as an email client, that handles a given protocol. The Uniform Resource Identifier (URI) contains the protocol for the default service or app, such as
This proprietary method is specific to Internet Explorer, and Microsoft Edge versions 18 and lower.
navigator.msLaunchUri(uri, successCallback, noHandlerCallback);
DOMStringspecifying the URL containing including the protocol of the document or resource to be displayed.
- A function matching the signature of
MSLaunchUriCallbackto be executed if the protocol handler is present.
- A function matching
MSLaunchUriCallbackto be executed if the protocol handler is not present.
If a default protocol handler is available on the system that matches the URI, the
successCallback is invoked, otherwise, the
noHandlerCallback is called.
To help protect a user's privacy, Windows displays a prompt for the user to allow the service or app to be launched. The user can choose to not see the prompt after the first instance for a particular protocol and automatically open the app or service without a user intervention. The
If the user's system does not have a program registered to handle a specific protocol, and a
noHandlerCallback is provided, Windows Internet Explorer will invoke the
noHandlerCallback. This enables developers to provide a custom fallback experience for the user. If a handler doesn't exist, and the developer doesn't provide a
noHandlerCallback, then Internet Explorer displays a dialog that asks the user if they want to allow the action. If the user allows it, the user is then prompted to look in the Windows Store for an app to handle the protocol. If multiple programs are registered on the system for the given protocol and no default has been chosen, Windows prompts the user to choose one.