Dodaj obsługę adresu URL pliku lokalnego do aplikacji Applescript

1

Używam prostej aplikacji AppleScript do otwierania różnych schematów URL w różnych aplikacjach Fluid .

Ustawiając tę ​​aplikację jako domyślną przeglądarkę, mogę skutecznie przeanalizować schemat URL i otworzyć odpowiednią samodzielną aplikację Fluid jako przeglądarkę.

Wszystko działa idealnie, z wyjątkiem opcji „udostępnij ten folder ...” w Dropbox. Spowoduje to otwarcie lokalnego adresu URL -file:///var/folders/...

To po prostu nie działa. Aplikacja default_browser uruchamia się, a następnie natychmiast zamyka.

Czy ktoś wie, jak zaktualizować ten skrypt, aby działały lokalne łącza plików?

on open location this_URL

if this_URL contains "docs.google.com" then
    tell application "/Applications/Fluids/Google Drive.app"
        activate
        open location this_URL
    end tell
else if this_URL contains "drive.google.com" then
    tell application "/Applications/Fluids/Google Drive.app"
        activate
        open location this_URL
    end tell
else if this_URL contains "mail.google.com" then
    tell application "/Applications/Fluids/Gmail.app"
        activate
        open location this_URL
    end tell
else if this_URL contains "gmail.com" then
    tell application "/Applications/Fluids/Gmail.app"
        activate
        open location this_URL
    end tell
    -- default browser here
else
    tell application "/Applications/Google Chrome.app"
        activate
        open location this_URL
    end tell
end if
end open location

EDYCJA: aby wyjaśnić - opcja Dropbox „udostępnij ten folder ...” otwiera domyślną aplikację przeglądarki (powyżej), która następnie natychmiast się zamyka.

liczniki czasu
źródło
2
Myślę, że problem polega na tym, że jesteś w on open locationmodule obsługi, podczas gdy this_URLw skrzynce Dropbox zostałby rozpoznany jako plik POSIX, a nie „lokalizacja”, choć nie jestem do końca pewien. Czy wypróbowałeś powyższe w on runzdarzeniu, które sprawdza, czy this_URLzawiera file://? A co się stanie, jeśli wykonasz display dialogwewnątrz on open locationpliku za pomocą adresu URL pliku, czy zdarzenie zostanie nawet złapane?
Asmus
Masz rację - okno dialogowe wyświetlania nie działa nawet w ramach tego wydarzenia. Co prowadzi do mojego początkowego pytania: „jak dodać obsługę adresów URL plików lokalnych do tej aplikacji?” Jakieś pomysły?
timshutes
Więc po krótkiej przeróbce jestem pewien, że zmiana trasy file://protokołu nie jest możliwa. Nie ma LSHandlerURLScheme w ~/Library/Preferences/com.apple.LaunchServices.plistmapowaniu tego adresu URL do Findera - domyślam się, że rozpoznawanie file:protokołu jest głęboko w zasobach Systemu i nie chciałbym z tym zadzierać. Jaki jest problem z obecną obsługą adresów URL plików Dropbox? Gdzie chcesz to przekierować?
Asmus
Problem polega na tym, że ten skrypt jabłkowy działa z dowolnymi adresami URL, które należy ustawić jako domyślną przeglądarkę. W typowej obsłudze nie ma nic złego - do tego właśnie próbuję wrócić. Czy to ma sens? Zaktualizowałem pytanie o więcej informacji
timshutes