我正在尝试从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/>
知道我做错了吗?
答案 0 :(得分:1)
killall DashboardClient
对我有帮助
答案 1 :(得分:0)
Dashboard中似乎有一些错误。我设法通过重命名使Widget工作。在重命名之前,小部件在Dashcode中运行得很好(谢谢,Till Theis),当我从那里安装它时,它有另一个名称。这激发了我只是试图重命名它,并且也有效。