我正在尝试从 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/>
知道我做错了什么吗?