Macos 如何在os x中将Applescript应用程序捆绑包用作默认浏览器?
我的目标是使在一台osx机器上点击的链接能够加载到远程计算机上启用apple事件的safari中。为此,我尝试创建一个applescript应用程序,然后将其作为系统上的默认浏览器 我的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
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