Як налаштувати спеціальний обробник протоколу в chrome? Щось на зразок:
myprotocol: // тестовий файл
Мені це знадобиться, щоб надіслати запит на http://example.com?query=testfile , а потім надіслати httpresponse до мого розширення.
Як налаштувати спеціальний обробник протоколу в chrome? Щось на зразок:
myprotocol: // тестовий файл
Мені це знадобиться, щоб надіслати запит на http://example.com?query=testfile , а потім надіслати httpresponse до мого розширення.
Відповіді:
Наступний метод реєструє додаток до схеми URI. Отже, ви можете використовувати mycustproto: у своєму HTML-коді для запуску локальної програми. Він працює на Google Chrome версії 51.0.2704.79 м (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 буде виглядати так:
Ви можете створити схему URI вручну в реєстрі або запустити файл "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
Preferences
файлі, який знаходиться за адресою%localappdata%\Google\Chrome\User Data\Default
Chrome 13 тепер підтримує navigator.registerProtocolHandler
API. Наприклад,
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
torrent:
та steam:
посилання працюють? Чи також мають це обмеження пакетні програми Chrome?
chrome.webNavigation
API, tel:
посилання ніколи не повідомляються.
Зараз це питання застаріле, але нещодавно було оновлено 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
і можете створити там веб-сторінку, яка спрямовує людей на додаток у магазині додатків.
Ось як я це зробив. Вашій програмі доведеться встановити кілька ключів reg під час встановлення, тоді в будь-якому браузері ви можете просто перейти за посиланням 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\""
Не впевнений, що це правильне місце для моєї відповіді, але оскільки я знайшов дуже мало корисних тем, і це був один із них, я публікую тут своє рішення.
Проблема : Я хотів, щоб Linux Mint 19.2 Cinnamon відкрив Evolution при натисканні на mailto
посилання в Chromium. Gmail був зареєстрований як обробник за замовчуванням у chrome: // settings / handlers, і я не міг вибрати жодного іншого обробника.
Рішення . Використовуйте параметри xdg у консолі
xdg-settings set default-url-scheme-handler mailto org.gnome.Evolution.desktop
Рішення було знайдено тут https://alt.os.linux.ubuntu.narkive.com/U3Gy7inF/kubuntu-mailto-links-in-chrome-doesn-t-open-evolution та адаптоване для мого випадку.
відчинено
C:\Users\<Username>\AppData\Local\Google\Chrome\User Data\Default
відкрийте, Preferences
тоді шукайте, excluded_schemes
ви знайдете його в 'protocol_handler' видаліть цю виключену схему (схеми), щоб скинути chrome для відкриття url із додатком за замовчуванням