2016-03-08 26 views
0

我正在創建一個小程序,它將幫助自動化虛擬環境的初始化並啓動Django服務器。我想與其他人分享這個計劃。OS X - JavaScript for Automation - 如何創建和存儲變量以供將來使用

我正在尋找一種方法,通過使用打開的文件瀏覽器創建變量(文件夾的位置)並存儲該變量,以便用戶在將來不必輸入該變量。

如何將新信息存儲在我的程序中供將來使用?我調查了plist文件的使用,但無法在任何地方找到任何文檔。謝謝你的幫助!

+0

我知道你正在使用JXA,但是這個AppleScript顯示瞭如何使用plist。你應該可以把它翻譯成JXA:http://stackoverflow.com/questions/35734698/build-own-applescript-numerical-error-handling/35749787#35749787 – JMichaelTX

回答

0

我建議使用上面的plist,但我只是碰到這個偉大的工具運行: JSON Helper

這是一個支持腳本編程的應用程序。這些示例在AppleScript中顯示,但應易於轉換爲JXA。

JSON Helper是的試劑(或腳本化後臺應用),其 允許你做有用的東西與來自AppleScript的JSON(JavaScript對象符號) 直接。 JSON Helper沒有界面,並且在 的後臺等待AppleScripts [或JXA]要求它執行某些操作, 就像Apple自己的系統事件一樣。

JSON助手包含 數量,幫助您解析JSON到正規的AppleScript 清單和記錄,並轉換AppleScript的列表,並記錄回 有效的JSON命令。此外,JSON助手還包含一些便利命令 ,以便您可以輕鬆地與基於Web的API進行通信。

0

通過使用Cocoa的NSUserDefaults類,您可以在用戶的​​偏好中持久地存儲簡單的值。

以下腳本會要求用戶在首次運行時選擇文件夾位置,然後將所選位置存儲在用戶的默認位置。當腳本再次運行時,它會在不提示用戶的情況下返回存儲的位置。 (更改suiteNamelocationKey值適合您的腳本。)

var currentApp = Application.currentApplication() 
currentApp.includeStandardAdditions = true 

var suiteName = "your.suite.name"; 
var locationKey = "your.prefs.key"; 

var $ud = $.NSUserDefaults.alloc.initWithSuiteName(suiteName); 
var $location = $ud.stringForKey(locationKey); 
var locationPath = $location.isNil() ? currentApp.chooseFolder() : Path($location.js); 
$ud.setObjectForKey($(locationPath.toString()), locationKey); 

locationPath 

請注意,您還可以使用defaults命令行工具的用戶的喜好進行交互,例如:

defaults read your.suite.name your.prefs.key 
defaults delete your.suite.name your.prefs.key 
相關問題