繁体   English   中英

如何保存由OS X仪表板小部件生成的文件?

[英]How do I save a file generated by an OS X Dashboard Widget?

我有一个要移植到OS X仪表板小部件的Web应用程序。 该Web应用程序使用JavaScript在客户端生成一些数据,然后,当用户想要保存数据时,将其发送到服务器端脚本,该脚本将数据中继回Content-disposition: attachment; HTTP标头,在大多数浏览器中触发保存文件对话框。

我尝试在Dashboard环境中复制此内容。 该小部件只是消失了。 我不知道,但我怀疑它可能实际上是在导航到不熟悉的内容。

因此,如何触发“保存文件对话框”-否则,将根本不使用任何方法将Widget生成的数据保存为文件?

据我所知,不可能通过“保存文件”对话框从仪表板小部件中保存文件,因为小部件的目的是显示信息(有或没有Internet访问权限),进行计算或控制应用程序。

但是,您有三个选项可以在本地存储数据:

  1. 将数据存储在小部件的首选项中。 通过setPreferenceForKey小部件方法设置数据,然后使用preferenceForKey小部件方法检索数据。 仅当数据属于窗口小部件且不必在窗口小部件外部进行访问时,这才是一个选择。 同样,数据大小也不能太大。

  2. 通过小部件的系统命令执行脚本。 此处可以使用任何脚本语言(sh,perl,ruby,python,AppleScript等)。

  3. 编写一个基于Cocoa / Objective-C的小部件插件

正确的方法是使用可可小部件插件,该插件可让您使用“另存为”对话框。 快速的方法是这样的:

command = widget.system("/bin/bash -c 'cat - > ~/Desktop/test.txt'", yourHandler);
command.write( "some text" );
command.close();

这告诉bash将stdin转移到桌面上的文件,然后写入stdin。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM