Firefox unable to launch an app using custom URI Scheme
We are using navigator.msLaunchUri(uri, successCallback, noHandlerCallback); in a JavaScript file to launch an App that we developed for one of the Web Application.
Recently, we noticed that an additional dialog "Launch Application" appearing with latest Firefox ESR version (Refer attached screenshot)
We would like to avoid this "Launch Application" dialog to be displayed to end-users. (1) Is there a way to suppress this dialog and let the navigator.msLaunchUri open the App successfully? may be some about:config option? (2) Is there a way for IT Admin's to apply some settings so that end-users don't have to do anything while using the application to avoid "Launch Application" dialog.
Thanks in advance.
Все ответы (9)
Is navigator.msLaunchUri() a defined function that calls a standard function? What is the action function call that triggers the dialog?
I'm going to assume something like
window.open('dctmctf://blahblah');
Firefox usually can handle novel protocols automatically if they can be found in the Windows registry. However, Firefox still might display a confirmation dialog the first time before the user's preference has been recorded.
Possibly there is a setting defined via the new "Firefox for Enterprise" features. The relevant articles are here:
https://support.mozilla.org/products/firefox-enterprise/customization-firefox-enterprise-environment
We can ask a moderator to move this thread to that board.
Thanks for the response @jscher2000.
we are not having window.open('dctmctf://blahblah'); & navigator.msLaunchUri() is expected to launch an App. Refer https://developer.mozilla.org/en-US/docs/Web/API/MSLaunchUri
We are creating required registry entries in Windows. HKCU\Software\Classes\dctmctf and it contains \shell\open\command.
With these registry keys in place, we expect Firefox to shell open the command specified as part of registry keys, but firefox ESR is showing a dialog box, that novice end-users may not be able to handle. Our Web Application is going to used by 1000s of end-users. We are looking if either an about:config option or some GPO kind of option that IT Admin can handle so that end-user intervention is avoided.
The reason I asked about how the function was implemented was when I tried this in the console --
navigator.msLaunchUri('https://support.mozilla.org/');
-- it told me:
TypeError: navigator.msLaunchUri is not a function
But finding out the answer might not have any effect on your problem, so never mind.
Try to ask advice at the Stack Overflow forum site.
to add more details to my original question:
We are creating a new iframe and then trying to open the custom URL on that IFrame. customProtocolUri = dctmctf://blahblah myIframe.contentWindow.location.href = customProtocolUri // This is where it tries to launch the custom URI.
Request the experts to advice on this issue at the earliest
anyone has an answer for this question?
I don't think any support volunteers have knowledge of these particular internals.
Looking at your original screenshot, it seems Firefox is saying there is not an association defined for the protocol at the system level. Is your application installer creating a key for dctmctf under this key:
HKEY_CLASSES_ROOT\PROTOCOLS\Handler
Maybe there is some other relevant place in Windows 10.
We are creating following registry entries. With these registry keys, IE-11, Edge & Chrome launches the App properly.
HKCU,SOFTWARE\Classes\%Protocol%,,,"URL:Documentum DCTMCTF Protocol" HKCU,SOFTWARE\Classes\%Protocol%,"URL Protocol","" HKCU,SOFTWARE\Classes\%Protocol%\DefaultIcon,,,"DCMApp.exe,1" HKCU,SOFTWARE\Classes\%Protocol%\shell\open\command,,%REG_EXPAND_SZ%,%53%\%ContentXferFolder%\%HostName%\%AppVersion%\DCMApp.exe """%1"""
Above, %Protocol% is dctmctf
After creating those keys, does dctmctf show up under any of these? I don't know that it needs to, but when I look, for example, for the ftp and mailto protocols, they show up here:
HKEY_CLASSES_ROOT\PROTOCOLS\Handler HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS\Handler
HKEY_CLASSES_ROOT\Wow6432Node\PROTOCOLS\Handler HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\PROTOCOLS\Handler