使用JS檢測自定義協議是否存在


【該博客是拼接他人的,原因我們這邊PC的開發人員問我,有沒有關於js某個對象直接能檢測手機或者電腦的自定義協議的,我上網搜了下,貌似移動端的解決比較多】

最終解決方案:還是需要github上面大神寫的方法:protocolcheck

https://www.lefer.cn/posts/34578/

之前在《自定義通用URL協議實現在瀏覽器中打開本機任意程序》介紹了通過自定義協議使的瀏覽器可以調起客戶端本地程序的方法,在企業環境的實際應用中,又面臨着如何檢測自定義的協議是否存在的問題,ie下可以通過activex檢測注冊表項,chrome該怎么辦呢?有沒有通用的解決辦法呢?答案是肯定的,甚至有人已經將該功能封裝成了通用JS。具體如下。

  • 訪問 github,下載 protocolcheck.js 。引用該js后,即可使用以下代碼檢測

    window.protocolCheck(href,callback)

    示例代碼


    • <!DOCTYPE html>
      <html>
      <head lang="zh">
          <meta charset="UTF-8">
          <title>自定義協議探測</title>
      </head>
      <body>
          <h1>Click one of these labels:</h1>
          <div href="unexists:randomstuff">一個不存在的協議</div>
          <div href="ff://C:/Windows/System32/notepad.exe">一個存在的協議</div>
          <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
          <script src="protocolcheck.js"></script>
          <script src="example.js"></script>
      </body>
      </html>

      exampe.js

    • $(function () {
          $("div[href]").click(function (event) {
              window.protocolCheck($(this).attr("href"),
                  function () {
                      alert("協議未注冊");
                  });
              event.preventDefault ? event.preventDefault() : event.returnValue = false;
          });
      });

      運行效果

  • 點擊第一個a標簽時,提示協議未注冊,點擊第二個a標簽時,正常打開了記事本程序。

  • END


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM