如何在OS X中将Applescript应用程序包用作默认浏览器?

4
我的目标是使在一个OSX机器上点击的链接加载到启用了苹果事件的远程计算机上的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这个应用程序应该是默认浏览器,但当我在应用程序中点击链接时,它完全忽略我的苹果脚本并仍然在Safari中加载网址(不是我指定的网址,而是我点击的网址)。
为什么会这样?我需要为我的苹果脚本做一些特殊处理才能作为浏览器使用吗?如果我通过双击运行我的苹果脚本应用程序,它会按照预期执行,但如果我通过“默认浏览器”功能启动它,则根本不会运行,取而代之的是Safari接管了操作。
如果我做错了什么简单的事情或者没有做某些事情,或者我完全走错了路,请让我知道。
1个回答

5

您需要修改您的AppleScript应用程序的Info.plist文件,以将其注册为能够处理URL的应用程序。您需要添加键CFBundleURLTypesCFBundleURLSchemeshttp

然后,您需要向您的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

更多信息请参见以下页面


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接