Как использовать комплект приложений Applescript в качестве браузера по умолчанию в OS X? - PullRequest
4 голосов
/ 24 августа 2010

Моя цель - сделать так, чтобы ссылки, нажимаемые на одной машине osx, загружались в safari на удаленном компьютере с включенными событиями apple. Чтобы сделать это, я пытаюсь создать приложение appleScript, которое затем я делаю браузером по умолчанию в системе.

Мой яблочный скрипт выглядит так:

on run argv
    set theurl to item 1 of argv
    set dest to "eppc://user:password@ipaddress"
    tell application "Safari" of machine dest
        activate
        open location theurl
    end tell
end run

В случае, если argv не подходит для захвата URL, я упростил скрипт до:

tell application "Safari"
    activate
    open location "http://www.google.com"
end tell

Затем я сохраняю это как приложение и говорю Safari, что это приложение должно быть браузером по умолчанию, но когда я нажимаю на ссылки в приложениях, оно полностью игнорирует мой яблочный скрипт и в любом случае загружает URL в Safari (а не URL, который я указан URL, на который я нажал).

Почему это? Нужно ли делать что-то особенное, чтобы мой Applescript работал в качестве браузера? Если я запускаю свое яблочное приложение, дважды щелкнув по нему, оно делает именно то, что должно, но если я запускаю его через функцию «браузер по умолчанию», оно вообще не запускается, и вместо этого Safari вступает во владение.

Если есть что-то простое, я делаю неправильно или не делаю, или если я делаю это совершенно неправильно, пожалуйста, дайте мне знать.

1 Ответ

5 голосов
/ 24 августа 2010

Вам необходимо изменить файл Info.plist вашего приложения AppleScript, чтобы зарегистрироваться как приложение, способное обрабатывать URL-адреса.Вы должны добавить ключ CFBundleURLTypes и CFBundleURLSchemes http .

Затем необходимо добавить обработчик open location к вашему AppleScript:

on open location theURL
 ...
end open location

Mac OS X не обнаруживает автоматически, что Info.plist приложения изменился.Поэтому необходимо принудительно обновить базу данных LaunchService в Терминале с помощью команды lsregister :

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /path/to/AppleScript.app

Также см. следующую страницу для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...