1

我正在尝试从 Snow Leopard 上的简单仪表板小部件访问命令行。我的目的是从我调用的命令行脚本中填充小部件的内容。这应该是可能的

每次使用它的 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/>

知道我做错了什么吗?

4

2 回答 2

1
killall DashboardClient

帮了我

于 2012-06-03T09:53:36.100 回答
0

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

于 2010-10-24T11:58:08.777 回答