【问题标题】:How to use an Applescript app bundle as the default browser in os x?如何使用 Applescript 应用程序包作为 os x 中的默认浏览器?
【发布时间】:2010-08-24 06:53:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: macos applescript


    【解决方案1】:

    您必须修改 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 了解更多信息。

    【讨论】:

      猜你喜欢
      • 2011-05-09
      • 1970-01-01
      • 2012-11-03
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多