Javascript 如何保存OSX仪表板小部件生成的文件?
我有一个web应用程序,正在移植到OSX仪表板小部件。web应用程序使用JavaScript在客户端生成一些数据,然后,当用户想要保存数据时,将其发送到服务器端脚本,服务器端脚本使用Javascript 如何保存OSX仪表板小部件生成的文件?,javascript,macos,save,dashboard,savefiledialog,Javascript,Macos,Save,Dashboard,Savefiledialog,我有一个web应用程序,正在移植到OSX仪表板小部件。web应用程序使用JavaScript在客户端生成一些数据,然后,当用户想要保存数据时,将其发送到服务器端脚本,服务器端脚本使用内容配置:附件将数据转发回来HTTP头,在大多数浏览器中触发保存文件对话框 我曾尝试在仪表板环境中复制此功能。小部件就这样消失了。我不知道,但我怀疑它实际上可能是导航到了不熟悉的内容 那么,我如何触发“保存文件对话框”——或者,如果无法触发,请使用任何方法将小部件生成的数据保存为文件?据我所知,无法通过“保存文件”对
内容配置:附件将数据转发回来代码>HTTP头,在大多数浏览器中触发保存文件对话框
我曾尝试在仪表板环境中复制此功能。小部件就这样消失了。我不知道,但我怀疑它实际上可能是导航到了不熟悉的内容
那么,我如何触发“保存文件对话框”——或者,如果无法触发,请使用任何方法将小部件生成的数据保存为文件?据我所知,无法通过“保存文件”对话框保存仪表板小部件中的文件,因为小部件的目的是显示信息(无论是否访问互联网),进行计算或控制应用程序
但是,有三个选项可以在本地存储数据:
将数据存储在小部件的首选项中。
通过widget方法设置数据,并使用widget方法检索数据。
只有当数据属于小部件并且不必在小部件外部访问时,这才是一个选项。数据大小也不应该太大
通过小部件的。
这里可以使用任何脚本语言(sh、perl、ruby、python、AppleScript等)
编写一个基于Cocoa/Objective-C的文档
正确的方法是使用cocoa小部件插件,它可以让您使用另存为对话框。快速的方法是这样的:
command = widget.system("/bin/bash -c 'cat - > ~/Desktop/test.txt'", yourHandler);
command.write( "some text" );
command.close();
这会告诉bash将stdin转换为桌面上的文件,然后写入stdin