2
Q
如何JXA
A
回答
1
對於自動化的JavaScript沒有直接並行的AS的持久屬性(和全局值)機制,但它確實有JSON.stringify()
和JSON.parse()
,這對於簡單的序列化和狀態檢索非常有效。
也許事情大致一樣:
(function() {
'use strict';
var a = Application.currentApplication(),
sa = (a.includeStandardAdditions = true, a),
strPath = sa.pathTo('desktop').toString() + '/persist.json';
// INITIALISE WITH RECOVERED VALUE || DEFAULT
var jsonPersist = $.NSString.stringWithContentsOfFile(strPath).js || null,
persistent = jsonPersist && JSON.parse(jsonPersist) || {
name: 'perfume',
value: 'vanilla'
};
/*********************************************************/
// ... MAIN CODE ...
// recovered or default value
sa.displayNotification(persistent.value);
// mutated value
persistent.value = "Five Spice"
/*********************************************************/
// WRAP UP - SERIALISE TO JSON FOR NEXT SESSION
return $.NSString.alloc.initWithUTF8String(
JSON.stringify(persistent)
).writeToFileAtomically(strPath, true);
})();
(A更全面的例子在這裏:https://github.com/dtinth/JXA-Cookbook/wiki/Examples#properties-which-persist-between-script-runs)
或者,簡單的鍵值對,而不是任意的數據結構,參見: https://stackoverflow.com/a/31902220/1800086上JXA支持書寫和閱讀.plist
相關問題
- 1. 如何從Swift運行JXA?
- 2. 如何使用JXA中的POSIX路徑
- 3. JXA:與自定義圖標
- 4. 如何安裝音量並使用Apple JXA打開文件夾
- 5. 如何使用JavaScript for Automation(JXA)最大化Safari窗口?
- 6. JXA .-如何在Outlook中打開基於ID的郵件
- 7. 如何從OS X JXA中讀取/強制CFArray和CFString等值?
- 8. 如何查找JXA對象上的所有方法?
- 9. JXA/Applescript + Pages:從模板創建文檔
- 10. JXA keystroke無法使用特殊字符
- 11. JXA Applescript獲取滑塊的價值
- 12. JXA:在Apple Mail中創建郵箱
- 13. 如何從macOS上的JXA/JavaScript for Automation腳本運行內聯Applescript?
- 14. 主題演講:通過AppleScript的改變形狀樣式或JXA
- 15. JXA - 在JavaScript中獲取NSAttributedString字體度量自動化
- 16. 以編程方式創建並使用JXA填充NSWindow
- 17. 在OS X中附加事件偵聽器JavaScript for Automation(JXA)
- 18. 你能用javascript(jxa)編寫文件夾操作嗎?
- 19. 退出從一個JavaScript自動化(JXA)腳本
- 20. 使用JXA在某些位置獲取對象?
- 21. 爲什麼OSA_LIBRARY_PATH不能像JXA中記錄的那樣工作?
- 22. JXA:當作爲參數傳遞給庫模塊時,數量會發生變化?
- 23. 啓動從一個JavaScript在Mac應用程序自動化(JXA)腳本
- 24. 在Finder中使用JXA(在Mac上用於自動化的Javascript)顯示
- 25. 通過JXA(JavaScript for Automation)在Adobe Illustrator中創建一個新路徑項目
- 26. JXA - 如果應用程序未運行(競爭條件涉及),則拋出異常
- 27. 使用JXA從選定的文本/突出顯示的文本中獲取字符串
- 28. 有沒有更好的方式通過Javascript for Automation(JXA)向iTunes添加新的播放列表?
- 29. 如何解決黑莓中的這個異常?
- 30. 什麼是更好的方法來克服錯誤:期望對象說明符。期待對象說明符:通過JXA