簡體   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