Abrir endereço no aplicativo externo a partir do navegador Chrome

1

DepoisqueonavegadorChromeabandonouasextensõesbaseadasemNPAPI(queincluíamaddonsparaessefim,semelhanteaoOpenwitheFlashgotdoFirefox)existeumamaneiradeenviarumlinkdonavegadorparaumaplicativoexterno(comooutronavegador,umvídeoreprodutorpersonalizado,etc.)?

Esse complemento NPAPI é chamado assim: "Abrir com externo aplicação ".

Existe uma alternativa para isso dada a mudança que ocorreu?

    
por cipricus 13.09.2016 / 16:13

2 respostas

2

Não é mais possível chamar diretamente no Chrome um aplicativo externo, exceto via uma extensão dedicada, mas não consegui encontrar uma que não use NPAPI.

Ainda há um método que deve funcionar, que precisa ser configurado o sistema operacional: protocolos personalizados, chamados também de esquemas de URI personalizados.

Um esquema de URI é a parte que encontramos no início do URL. Alguns dos mais comuns são: http(s):// , ftp:// , feed:// , mailto: , news: . A lista de todas as conhecidas pode ser encontrada na lista IANA de Esquemas Uniform Resource Identifier (URI) .

Tudo o que esses protocolos fazem é iniciar um aplicativo que manipule o parâmetro. Uma vez que o aplicativo foi lançado com sucesso, ele pode usar os parâmetros da linha de comando para recuperar o URI que o lançou. O método usual é chamar um script conhecido que processa seu argumento e lança o programa necessário.

Incluindo aqui um tutorial para Windows, Linux e Mac é muito pesado, mas aqui estão algumas referências úteis:

Para responder ao pedido do autor, segue abaixo um script Linux KDE que define /path/prog como manipulador para o protocolo xyz:// . Cria para o KDE o arquivo $KDEDIR/share/services/xyz.protocol e o preenche. As configurações do Gnome também são definidas (se possível), pois alguns aplicativos ainda as usam mesmo se rodando no KDE. O script é adaptado do do github .

#!/usr/bin/env bash
#
#    This script attempts to register a protocol handler for
#    links that look like sgaction://blah.  
#
#    It should be sufficient for gnome apps like pidgin and kde apps
#    like konqueror.  Firefox seems to pay attention to the gnome
#    settings at least to the degree that it recognizes links of the
#    form $protocol://blah as hot-links, but it may still ask you to
#    select the application the first time you click on one.

protocol=xyz
handler="/path/prog"

echo "Installing $protocol protocol handler for Gnome."

gconfTool="$(which gconftool-2)"
if [[ "$gconfTool" ]]; then
    gconftool-2 --set --type=string /desktop/gnome/url-handlers/$protocol/command "$handler \"%s\""
    gconftool-2 --set --type=bool /desktop/gnome/url-handlers/$protocol/enabled true
    gconftool-2 --set --type=bool /desktop/gnome/url-handlers/$protocol/need-terminal false
else
    echo "WARNING: gconftool-2 not found: skipping gnome url-handler registration."
fi


echo "Installing $protocol protocol handler for KDE."

kdeProtoDir=~/.kde/share/services

if [[ "$KDEDIR" ]]; then
    kdeProtoDir="$KDEDIR/share/services"
fi

if [[ ! -e "$kdeProtoDir" ]]; then
    mkdir -p "$kdeProtoDir"
fi

if [[ -e "$kdeProtoDir" ]]; then
    kdeProtoFile="$kdeProtoDir/$protocol.protocol"
    rm -f $kdeProtoFile
    cat > $kdeProtoFile << EOF
[Protocol]
exec=$handler "%u"
protocol=$protocol
input=none
output=none
helper=true
listing=false
reading=false
writing=false
makedir=false
deleting=false
EOF
else
    echo "WARNING: can't find or create KDE protocol directory: $kdeProtoDir:  skipping KDE url-handler registration."
fi


echo "Done."
    
por 17.01.2017 / 20:22
0

Infelizmente, o Chrome não controla qual programa iniciar ao digitar algumas URLs ou protocolos específicos. Isso é decidido pelo Windows, a menos que um programa de sua seleção tenha a capacidade de adicionar novo protocolo e se associar a ele.

Por exemplo, se você instalou o utorrent e deixou suas configurações padrão, ele será aberto quando você clicar neste link: ímã :? xt = urn: btih: c12fe1c06bba254a9dc9f519b335aa7c1367a88a & dn . De fato, no Firefox, você será solicitado a selecionar seus programas preferidos, mas o Chrome não fará o mesmo.

    
por 17.01.2017 / 18:11