相关疑难解决方法(0)

如何检测浏览器的协议处理程序?

我创建了一个自定义URL协议处理程序.

http://

mailto://

custom://

我已经注册了一个WinForms应用程序来做出相应的响应.一切都很好.

但我希望能够优雅地处理用户尚未安装自定义URL协议处理程序的情况.

为了能够做到这一点,我需要能够检测浏览器的注册协议处理程序,我想从JavaScript.但我一直无法找到一种方法来查询信息.我希望找到解决这个问题的方法.

感谢您提供的任何想法.

javascript browser protocols moniker

77
推荐指数
8
解决办法
5万
查看次数

在 chrome 86 中检测自定义协议处理程序

我已经根据https://gist.github.com/aaronk6/d801d750f14ac31845e8实施了一个解决方案 ,它一直工作到 chrome 85 。使用最新的 chrome Update Onblur 没有检测到开放协议处理程序弹出窗口。有没有办法使用 Chrome 86 新版本识别在 windows 中注册的自定义协议。下面提到的我实现的代码,它适用于 Firefox

function LinkClicked() {
        launchUri($(this).attr("href"), function () {
            // SUCCESS APPLICATION INSTALLED
        }, function () {
            // PROTOCOL NOT REGISTERD IN REGISTRY
            setTimeout(showAppInstallWarningMessage, 4000);
        }, function () {
            // STATUS CANNOT IDENTIFY
            setTimeout(showAppInstallWarningMessage, 4000);
        });
    }





function launchUri(uri, successCallback, noHandlerCallback, unknownCallback) {
    var res, parent, popup, iframe, timer, timeout, blurHandler, timeoutHandler, browser;

    function callback(cb) {
        if (typeof cb === 'function') cb();
    }

    function createHiddenIframe(parent) …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome custom-protocol chromium google-chrome-app

5
推荐指数
1
解决办法
1907
查看次数