Tes*_*ter 78 custom-protocol google-chrome-extension
如何在chrome中设置自定义协议处理程序?就像是:
myprotocol:// testfile的
我需要将此请求发送到http://example.com?query=testfile,然后将httpresponse发送到我的扩展程序.
Jun*_*Xie 69
以下方法将应用程序注册到URI方案.因此,您可以在HTML代码中使用mycustproto:来触发本地应用程序.它适用于Google Chrome版本51.0.2704.79 m(64位).
我主要使用这种方法静默打印文档,而不会弹出打印对话框.结果非常好,是将外部应用程序与浏览器集成的无缝解决方案.
HTML代码(简单):
<a href="mycustproto:Hello World">Click Me</a>
HTML代码(替代):
<input id="DealerName" />
<button id="PrintBtn"></button>
$('#PrintBtn').on('click', function(event){
  event.preventDefault();
  window.location.href = 'mycustproto:dealer ' + $('#DealerName').val();
});
URI Scheme将如下所示:
您可以在注册表中手动创建URI Scheme,也可以运行"mycustproto.reg"文件(参见下文).
HKEY_CURRENT_USER\Software\Classes
   mycustproto
      (Default) = "URL:MyCustProto Protocol"
      URL Protocol = ""
      DefaultIcon
         (Default) = "myprogram.exe,1"
      shell
         open
            command
               (Default) = "C:\Program Files\MyProgram\myprogram.exe" "%1"
mycustproto.reg示例:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\mycustproto]
"URL Protocol"="\"\""
@="\"URL:MyCustProto Protocol\""
[HKEY_CURRENT_USER\Software\Classes\mycustproto\DefaultIcon]
@="\"mycustproto.exe,1\""
[HKEY_CURRENT_USER\Software\Classes\mycustproto\shell]
[HKEY_CURRENT_USER\Software\Classes\mycustproto\shell\open]
[HKEY_CURRENT_USER\Software\Classes\mycustproto\shell\open\command]
@="\"C:\\Program Files\\MyProgram\\myprogram.exe\" \"%1\""
C#控制台应用程序 - myprogram.exe:
using System;
using System.Collections.Generic;
using System.Text;
namespace myprogram
{
  class Program
  {
    static string ProcessInput(string s)
    {
       // TODO Verify and validate the input 
       // string as appropriate for your application.
       return s;
    }
    static void Main(string[] args)
    {
      Console.WriteLine("Raw command-line: \n\t" + Environment.CommandLine);
      Console.WriteLine("\n\nArguments:\n");
      foreach (string s in args)
      {
        Console.WriteLine("\t" + ProcessInput(s));
      }
      Console.WriteLine("\nPress any key to continue...");
      Console.ReadKey();
    }
  }
}
尝试首先运行程序以确保程序已放置在正确的路径中:
cmd> "C:\Program Files\MyProgram\myprogram.exe" "mycustproto:Hello World"
点击HTML页面上的链接:
您将第一次看到弹出警告窗口.
要在Chrome中重置外部协议处理程序设置:
如果您曾在Chrome中接受自定义协议并希望重置设置,请执行此操作(目前,Chrome中没有用于更改设置的用户界面):
在此路径下编辑此文件的" 本地状态 ":
C:\Users\Username\AppData\Local\Google\Chrome\User Data\
或者只是去:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\
然后,搜索此字符串:protocol_handler
您将从那里看到自定义协议.
注意:在编辑文件之前,请关闭Google Chrome.否则,您所做的更改将被Chrome覆盖.
参考:
https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
Bor*_*mus 52
Chrome 13现在支持navigator.registerProtocolHandlerAPI.例如,
navigator.registerProtocolHandler(
    'web+custom', 'http://example.com/rph?q=%s', 'My App');
请注意,您的协议名称必须以web+常见的协议名称开头(例如mailto,等等).有关更多详细信息,请参阅:http://updates.html5rocks.com/2011/06/Registering-a-custom-protocol-handler
Gor*_*ams 29
这个问题现在已经过时了,但Chrome最近有一次更新(至少在打包的应用程序方面)......
http://developer.chrome.com/apps/manifest/url_handlers
和
https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/url-handler
它允许您注册URL的处理程序(只要您拥有它).可悲的是,myprotocol://但至少你可以做,http://myprotocol.mysite.com并且可以创建一个网页,将人们指向应用程序商店中的应用程序.
小智 8
这就是我做到的.您的应用程序需要在安装时安装一些注册表项,然后在任何浏览器中,您只需链接到foo:\ anythingHere.txt,它将打开您的应用程序并传递该值.
这不是我的代码,只是我在搜索相同问题时在网上找到的内容.只需将下面文本中的所有"foo"更改为您想要的协议名称,并将路径更改为您的exe.
(将其放入文本文件中,如同桌面上的foo.reg一样保存,然后双击它以安装密钥)-----在此行下面进入.reg文件(不包括此行)--- ---
REGEDIT4
[HKEY_CLASSES_ROOT\foo]
@="URL:foo Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\foo\shell]
[HKEY_CLASSES_ROOT\foo\shell\open]
[HKEY_CLASSES_ROOT\foo\shell\open\command]
@="\"C:\\Program Files (x86)\\Notepad++\\notepad++.exe\" \"%1\"" 
| 归档时间: | 
 | 
| 查看次数: | 78472 次 | 
| 最近记录: |