Macos 如何在os x中将Applescript应用程序捆绑包用作默认浏览器?

Macos 如何在os x中将Applescript应用程序捆绑包用作默认浏览器?,macos,applescript,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

我的目标是使在一台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(不是我指定的url,而是我单击的url)

为什么会这样?我需要为我的Applescript做一些特殊的事情来充当浏览器吗?如果我通过双击applescript应用程序来运行它,它会执行它应该执行的操作,但是如果我通过“默认浏览器”功能启动它,它根本不会运行,取而代之的是Safari


如果有一些简单的事情我做错了或没有做,或者我做的完全是错的,请告诉我。

您必须修改AppleScript应用程序的Info.plist文件,以将自己注册为能够处理URL的应用程序。您必须添加键
CFBundleURLTypes
CFBundleURLSchemes
http

然后,您必须将
打开位置
处理程序添加到AppleScript:

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