Chrome'da özel bir protokol işleyicisini nasıl kurarım? Gibi bir şey:
myprotocol: // test dosyası
Http://example.com?query=testfile ' a bir istek göndermek ve ardından http yanıtını uzantıma göndermek için buna ihtiyacım var .
Chrome'da özel bir protokol işleyicisini nasıl kurarım? Gibi bir şey:
myprotocol: // test dosyası
Http://example.com?query=testfile ' a bir istek göndermek ve ardından http yanıtını uzantıma göndermek için buna ihtiyacım var .
Yanıtlar:
Aşağıdaki yöntem bir uygulamayı bir URI Şemasına kaydeder. Bu nedenle, yerel bir uygulamayı tetiklemek için HTML kodunuzda mycustproto: kullanabilirsiniz . Google Chrome Sürümü 51.0.2704.79 m (64 bit) üzerinde çalışır.
Bu yöntemi esas olarak belgeyi yazdırma iletişim kutusu açılmadan sessizce yazdırmak için kullandım. Sonuç oldukça iyidir ve harici uygulamayı tarayıcıyla entegre etmek için kusursuz bir çözümdür.
HTML kodu (basit):
<a href="mycustproto:Hello World">Click Me</a>
HTML kodu (alternatif):
<input id="DealerName" />
<button id="PrintBtn"></button>
$('#PrintBtn').on('click', function(event){
event.preventDefault();
window.location.href = 'mycustproto:dealer ' + $('#DealerName').val();
});
URI Şeması şöyle görünecek:
URI Şemasını kayıt defterinde manuel olarak oluşturabilir veya "mycustproto.reg" dosyasını çalıştırabilirsiniz (aşağıya bakın).
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 örneği:
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 # konsol uygulaması - 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();
}
}
}
Programın doğru yola yerleştirildiğinden emin olmak için önce programı çalıştırmayı deneyin:
cmd> "C:\Program Files\MyProgram\myprogram.exe" "mycustproto:Hello World"
HTML sayfanızdaki bağlantıyı tıklayın:
İlk kez bir uyarı penceresi açılır.
Chrome'da harici protokol işleyici ayarını sıfırlamak için:
Chrome'da özel protokolü daha önce kabul ettiyseniz ve ayarı sıfırlamak istiyorsanız, bunu yapın (şu anda Chrome'da ayarı değiştirmek için bir kullanıcı arayüzü yoktur):
Bu dosyayı şu yol altında " Yerel Durum " u düzenleyin:
C:\Users\Username\AppData\Local\Google\Chrome\User Data\
veya Sadece şu adrese gidin:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\
Ardından, şu dizeyi arayın: protocol_handler
Oradan özel protokolü göreceksiniz.
Not: Lütfen dosyayı düzenlemeden önce Google Chrome'unuzu kapatın. Aksi takdirde, yaptığınız değişikliğin üzerine Chrome tarafından yazılacaktır.
Referans:
https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
Preferences
%localappdata%\Google\Chrome\User Data\Default
Chrome 13 artık navigator.registerProtocolHandler
API'yi destekliyor . Örneğin,
navigator.registerProtocolHandler(
'web+custom', 'http://example.com/rph?q=%s', 'My App');
Protokol adınızın, web+
yaygın olanlar için birkaç istisna dışında (örneğin mailto
, vb.) İle başlaması gerektiğini unutmayın . Daha fazla ayrıntı için bkz: http://updates.html5rocks.com/2011/06/Registering-a-custom-protocol-handler
torrent:
ve steam:
bağlantılar nasıl çalışır? Chrome Paketli Uygulamalarda da bu kısıtlama var mı?
chrome.webNavigation
API kullanılsa bile , tel:
bağlantılar asla raporlanmaz.
Bu soru artık eski, ancak Chrome'da yeni bir güncelleme var (en azından paketlenmiş uygulamalar söz konusu olduğunda) ...
http://developer.chrome.com/apps/manifest/url_handlers
ve
https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/url-handler
Bir URL için bir işleyici kaydetmenize izin verir (ona sahip olduğunuz sürece). Ne yazık ki hayır, myprotocol://
ancak en azından http://myprotocol.mysite.com
orada insanları uygulama mağazasındaki uygulamaya yönlendiren bir web sayfası oluşturabilirsiniz.
Ben böyle yaptım. Uygulamanızın kurulum sırasında birkaç reg anahtarı yüklemesi gerekir, daha sonra herhangi bir tarayıcıda foo: \ anyHere.txt ile bağlantı kurabilirsiniz ve uygulamanızı açıp bu değeri iletir.
Bu benim kodum değil, aynı soruyu ararken web'de bulduğum bir şey. Aşağıdaki metindeki tüm "foo" 'yu istediğiniz protokol adıyla değiştirin ve exe'nizin yolunu da değiştirin.
(bunu masaüstünüzde foo.reg olarak kaydedin olarak bir metin dosyasına koyun, ardından anahtarları yüklemek için üzerine çift tıklayın) ----- Bu satırın altında .reg dosyasına gider (bu satır dahil DEĞİL) --- ---
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\""
Cevabım için doğru yerin burası olup olmadığından emin değilim, ancak çok az sayıda yardımcı konu bulduğum ve onlardan biri olduğu için çözümümü buraya gönderiyorum.
Sorun : Linux Mint 19.2 Cinnamon'un mailto
Chromium'daki bağlantılara tıklarken Evolution'ı açmasını istedim . Gmail, chrome: // settings / handlers'da varsayılan işleyici olarak kaydedildi ve başka bir işleyici seçemedim.
Çözüm : Konsoldaki xdg ayarlarını kullanın
xdg-settings set default-url-scheme-handler mailto org.gnome.Evolution.desktop
Çözüm burada https://alt.os.linux.ubuntu.narkive.com/U3Gy7inF/kubuntu-mailto-links-in-chrome-doesn-t-open-evolution bulundu ve durumuma uyarlandı.
açık
C:\Users\<Username>\AppData\Local\Google\Chrome\User Data\Default
açın ve Preferences
ardından excluded_schemes
sizi arayın 'protocol_handler' içinde bulacaksınız, bu hariç tutulan şemaları silin, kromu varsayılan uygulamayla açmak için url'yi sıfırlamak için