如何在OS X中从终端打开Goog​​le Chrome中的非http网址(Chrome扩展程序)?


2

我正在尝试添加一个快捷方式来打开Chrome,其中包含来自bash脚本的非http网址。这就是我所拥有的:

/usr/bin/open -a "/Applications/Google Chrome.app" 'chrome-extension://hgmloofddfasdfasdffgcellkdadsfadsfbjeloo/RestClient.html#RequestPlace:saved/2'   

由于参数不以“http”开头,因此Chrome会尝试将其作为文件打开,这当然不存在,也不是我想要的。

有没有办法让Chrome将其视为网址?

编辑:

@mjb - 那差不多了。谢谢。

扩展(Advanced Rest Client)在本地安装。但是,将它作为文件加载并使用“chrome-extension://”加载它会有所不同。当我将其作为文件加载时,我不会获得已保存为应用程序一部分的数据(我的其余请求)。没有它,它就没用了。

这是我从bash运行的:

/usr/bin/open -a /Applications/Google\ Chrome.app /Users/me/Library/Application\ Support/Google/Chrome/Default/Extensions/hgmloofdphfgcellkdfbfbjeloo/3.1.7_0/RestClient.html

它加载我的应用程序,它出现 - 只是没有我的上下文/数据。当我点击Chrome中的扩展程序时,它会使用以下网址:

chrome-extension://hgmloofdphfgcellkdfbfbjeloo/RestClient.html#RequestPlace:saved/2

请注意,最后的哈希没有区别。UUID与本地目录相同。

我也尝试加载它:

https://chrome.google.com/webstore/detail/advanced-rest-client/hgmloofddffgcellkdfbfbjeloo/RestClient.html

这只会打开此应用的Chrome网上应用店页面。

我想要使​​用的数据确实出现在此扩展的数据库文件中,该文件位于:

/Users/me/Library/Application Support/Google/Chrome/Default/databases/chrome-extension_extension_hgmloofddffdnphfgcellkdfbfbjeloo_0/5

有任何想法吗?

Answers:


2

我相信open尝试在将传递的URL传递给Chrome之前对其进行处理。由于它无法识别“chrome-extension”方案,因此将其解释为相对文件路径。

相反,您可以使用AppleScript来完成此任务。

osascript <<EOD
set theURL to "chrome-extension://nmmhkkegccagdldgiimedpiccmgmieda/html/craw_window.html"
tell application "Google Chrome"
 if windows = {} then
  make new window
  set URL of (active tab of window 1) to theURL
 else
  make new tab at the end of window 1 with properties {URL:theURL}
 end if
 activate
end tell
EOD

请注意,上面的代码实际上是包含在bash heredoc中的AppleScript并传递给osascript命令,因此您可以将其直接放入终端或shell脚本中。


1

无论您是否愿意,您都在告诉Chrome打开本地文件。

如果您尝试在线导航到扩展程序,它有一个https地址,如Evernote Web Clipper:

https://chrome.google.com/webstore/detail/evernote-web-clipper/pioclpoplcdbaefihamjohnefbikjilc?hl=en-US

如果您的目标是加载本地扩展,则必须提供扩展的完整路径,而不是相对路径。默认情况下,您可以在此处找到它们:

/Users/<USER>/Library/Application Support/Google/Chrome/Default/Extensions

但是这些没有本地chrome-extension://URL。如果我理解正确,你会想做:

$ /usr/bin/open -a "/Applications/Google Chrome.app" "/Users/<USER>/Library/Application Support/Google/Chrome/Default/Extensions/<EXTENSION-ID>"

<USER>您的用户在哪里,是您<EXTENSION-ID>的扩展程序的唯一标识符。这将使Chrome进入目录导航模式,然后您可以从中加载您所追求的任何文件。

如果这没有帮助,那么最好澄清原始问题中的目标。


0

您可以制作AppleScript应用程序以使用Google Chrome打开特定的URL方案。

  1. 创建一个新的AppleScript
on open location theURL
  tell application "/Applications/Google Chrome.app"
      set newwindow to make new window
      activate
      set URL of active tab of newwindow to theURL
  end tell
end open location
  1. 将此AppleScript脚本另存为应用程序

  2. 编辑Info.plist并添加新密钥URL types(数组)

URL Scheme Info.plist

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>Applescript urls</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>chrome-extension</string>
            </array>
            <key>LSIsAppleDefaultForScheme</key>
            <true/>
        </dict>
    </array>
  1. 启动应用程序一次以注册它,下次打开chrome-extension链接时,它将在Chrome上打开它。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.