【问题标题】:OSX Dashboard widget command line access problemOSX Dashboard 小部件命令行访问问题
【发布时间】:2011-04-29 08:48:37
【问题描述】:

我正在尝试从 Snow Leopard 上的简单仪表板小部件访问命令行。我的目的是从我调用的命令行脚本中填充小部件的内容。 This should be possible

每次显示小部件时,我都会使用它的 onshow 回调调用脚本:

if (window.widget) { 
    widget.onshow = onshow; 
} 

function onshow() {
    document.getElementById("mydynamicarea").innerHTML = widget.system("/usr/bin/id -un", null).outputString;
} 

上面我试图使用一个简单的命令来显示我的用户名来测试命令行访问。这不起作用,小部件只显示我在 HTML 上的静态文本:

  <div id="mydynamicarea">No data available</div>

如果我使用静态字符串而不是 widget.system 调用,同样的 Javascript 也可以工作:

if (window.widget) { 
    widget.onshow = onshow; 
} 

function onshow() {
    document.getElementById("mydynamicarea").innerHTML = "This text is actually shown on widget";
} 

当我查看控制台时,我可以看到以下错误消息:

TypeError: Result of expression 'widget.system' [undefined] is not a function. 

我已经在 info.plist 中配置了命令行访问:

<key>AllowSystem</key>
<true/>

知道我做错了什么吗?

【问题讨论】:

  • 您是否尝试在更改 Info.plst 后重新启动 Daschode? Dashcode 有时会做一些疯狂的事情。
  • 我正在通过双击 Finder 上的 MyWidget.wdgt 并将其安装到仪表板进行测试。感谢您提供使用 Dashcode 的提示。小部件在那里工作!我想我必须重新启动 OSX 才能使其在 Dashboard 上运行,或者有什么方法可以仅重新启动 Dashboard?
  • 您可以使用killall Dock 终止仪表板进程。它将自动重新启动。

标签: javascript macos widget dashboard


【解决方案1】:
killall DashboardClient

帮了我

【讨论】:

    【解决方案2】:

    仪表板中似乎存在一些错误。我设法通过重命名小部件使其工作。在重命名之前,该小部件在 Dashcode 中运行良好(感谢 Till Theis),当我从那里使用另一个名称安装它时,它工作正常。这启发了我尝试重命名它,并且效果也很好。

    【讨论】:

      猜你喜欢
      • 2023-04-07
      • 2011-11-25
      • 1970-01-01
      • 2015-04-09
      • 2023-03-18
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多