如何使用Applescript应用程序包作为os x中的默认浏览器?

时间:2010-08-24 06:53:30

标签: macos applescript

我的目标是使点击一台osx机器上的链接加载到启用了Apple事件的远程计算机上的safari中。为此,我正在尝试创建一个AppleScript应用程序,然后我在系统上创建默认浏览器。

我的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该应用程序应该是默认浏览器,但是当我点击应用程序中的链接时,它完全忽略了我的AppleScript并在Safari中加载了url(不是我的网址)已指定,我点击的网址。)

这是为什么?我是否需要为我的Applescript做一些特殊的操作才能充当浏览器?如果我通过双击它来运行我的AppleScript应用程序,它会完全按照它应该执行的操作,但如果我通过“默认浏览器”功能启动它,它根本不会运行,而是Safari接管。

如果有一些简单的事情我做错了或不做,或者如果我完全错误的方式,请告诉我。

1 个答案:

答案 0 :(得分:5)

您必须修改AppleScript应用程序的Info.plist文件,才能将自身注册为能够处理URL的应用程序。您必须添加密钥CFBundleURLTypesCFBundleURLSchemes http

然后你必须在AppleScript中添加一个open location处理程序:

on open location theURL
 ...
end open location

Mac OS X不会自动检测应用程序的Info.plist是否已更改。因此,您需要使用 lsregister 命令强制更新终端中的LaunchService数据库:

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

有关详细信息,另请参阅following page