Bagaimana cara menyiapkan penangan protokol khusus di Chrome? Sesuatu seperti:
myprotocol: // testfile
Saya memerlukan ini untuk mengirim permintaan ke http://example.com?query=testfile , lalu mengirim httpresponse ke ekstensi saya.
Bagaimana cara menyiapkan penangan protokol khusus di Chrome? Sesuatu seperti:
myprotocol: // testfile
Saya memerlukan ini untuk mengirim permintaan ke http://example.com?query=testfile , lalu mengirim httpresponse ke ekstensi saya.
Jawaban:
Metode berikut mendaftarkan aplikasi ke Skema URI. Jadi, Anda dapat menggunakan mycustproto: dalam kode HTML Anda untuk memicu aplikasi lokal. Ini bekerja pada Google Chrome Versi 51.0.2704.79 m (64-bit).
Saya terutama menggunakan metode ini untuk mencetak dokumen secara diam-diam tanpa memunculkan dialog cetak. Hasilnya cukup bagus dan merupakan solusi yang mulus untuk mengintegrasikan aplikasi eksternal dengan browser.
Kode HTML (sederhana):
<a href="mycustproto:Hello World">Click Me</a>
Kode HTML (alternatif):
<input id="DealerName" />
<button id="PrintBtn"></button>
$('#PrintBtn').on('click', function(event){
event.preventDefault();
window.location.href = 'mycustproto:dealer ' + $('#DealerName').val();
});
Skema URI akan terlihat seperti ini:
Anda dapat membuat Skema URI secara manual di registri, atau menjalankan file "mycustproto.reg" (lihat di bawah).
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"
contoh 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\""
Aplikasi konsol 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();
}
}
}
Coba jalankan program terlebih dahulu untuk memastikan program telah ditempatkan di jalur yang benar:
cmd> "C:\Program Files\MyProgram\myprogram.exe" "mycustproto:Hello World"
Klik link di halaman HTML Anda:
Anda akan melihat jendela peringatan popup untuk pertama kalinya.
Untuk mengatur ulang pengaturan penangan protokol eksternal di Chrome:
Jika Anda pernah menerima protokol khusus di Chrome dan ingin mengatur ulang pengaturan, lakukan ini (saat ini, tidak ada UI di Chrome untuk mengubah pengaturan):
Edit "Status Lokal " file ini di bawah jalur ini:
C:\Users\Username\AppData\Local\Google\Chrome\User Data\
atau Cukup buka:
%USERPROFILE%\AppData\Local\Google\Chrome\User Data\
Kemudian, cari string ini: protocol_handler
Anda akan melihat protokol khusus dari sana.
Catatan: Harap tutup Google Chrome Anda sebelum mengedit file. Jika tidak, perubahan yang Anda buat akan ditimpa oleh Chrome.
Referensi:
https://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
Preferences
file, terletak di%localappdata%\Google\Chrome\User Data\Default
Chrome 13 sekarang mendukung navigator.registerProtocolHandler
API. Sebagai contoh,
navigator.registerProtocolHandler(
'web+custom', 'http://example.com/rph?q=%s', 'My App');
Perhatikan bahwa nama protokol Anda harus dimulai dengan web+
, dengan beberapa pengecualian untuk yang umum (seperti mailto
, dll). Untuk detail lebih lanjut, lihat: http://updates.html5rocks.com/2011/06/Registering-a-custom-protocol-handler
torrent:
dan steam:
tautan bekerja? Apakah Aplikasi Terpaket Chrome juga memiliki batasan ini?
chrome.webNavigation
API, tel:
tautan tidak pernah dilaporkan.
Pertanyaan ini sudah tua sekarang, tetapi ada pembaruan terkini untuk Chrome (setidaknya jika menyangkut aplikasi yang dikemas) ...
http://developer.chrome.com/apps/manifest/url_handlers
dan
https://github.com/GoogleChrome/chrome-app-samples/tree/master/samples/url-handler
Ini memungkinkan Anda untuk mendaftarkan penangan untuk URL (selama Anda memilikinya). Sayangnya tidak, myprotocol://
tetapi setidaknya Anda dapat melakukannya http://myprotocol.mysite.com
dan dapat membuat halaman web di sana yang mengarahkan orang ke aplikasi di app store.
Beginilah cara saya melakukannya. Aplikasi Anda perlu menginstal beberapa kunci reg saat penginstalan, lalu di browser apa pun Anda cukup menautkan ke foo: \ everythingHere.txt dan itu akan membuka aplikasi Anda dan meneruskan nilai itu.
Ini bukan kode saya, hanya sesuatu yang saya temukan di web saat menelusuri pertanyaan yang sama. Ubah saja semua "foo" dalam teks di bawah ini ke nama protokol yang Anda inginkan dan ubah jalur ke exe Anda juga.
(taruh ini ke dalam file teks sebagai simpan sebagai foo.reg di desktop Anda, lalu klik dua kali untuk menginstal kunci) ----- Di bawah baris ini masuk ke file .reg (TIDAK termasuk baris ini) --- ---
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\""
Tidak yakin apakah ini tempat yang tepat untuk jawaban saya, tetapi karena saya menemukan sangat sedikit utas yang bermanfaat dan ini adalah salah satunya, saya memposting solusi saya di sini.
Masalah : Saya ingin Linux Mint 19.2 Cinnamon membuka Evolution saat mengklik mailto
tautan di Chromium. Gmail terdaftar sebagai penangan default di chrome: // settings / handler dan saya tidak dapat memilih penangan lain.
Solusi : Gunakan pengaturan xdg di konsol
xdg-settings set default-url-scheme-handler mailto org.gnome.Evolution.desktop
Solusi ditemukan di sini https://alt.os.linux.ubuntu.narkive.com/U3Gy7inF/kubuntu-mailto-links-in-chrome-doesn-t-open-evolution dan disesuaikan untuk kasus saya.
Buka
C:\Users\<Username>\AppData\Local\Google\Chrome\User Data\Default
buka Preferences
lalu cari excluded_schemes
Anda akan menemukannya di 'protocol_handler' hapus skema yang dikecualikan ini untuk mengatur ulang chrome untuk membuka url dengan aplikasi default