搜索 | 用户支持

防范以用户支持为名的诈骗。我们绝对不会要求您拨打电话或发送短信,及提供任何个人信息。请使用“举报滥用”选项报告涉及违规的行为。

Learn More

Firefox unable to launch an app using custom URI Scheme

more options

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.

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)

more options

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.

more options

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.

more options

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.

more options
more options

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

more options

anyone has an answer for this question?

more options

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.

more options

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

more options

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