【问题标题】:How to set global preferences in a XULRunner app如何在 XULRunner 应用程序中设置全局首选项
【发布时间】:2012-10-16 06:52:21
【问题描述】:

通常我们设置 XULRunner 应用首选项:

var pref = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
pref.setBoolPref(name,value);

但这些首选项存储在用户配置文件中。这意味着如果您创建新的 XULRunner 应用配置文件,该首选项将会丢失。

有没有办法全局设置偏好或在个人资料之间共享偏好?

【问题讨论】:

    标签: xul xulrunner


    【解决方案1】:

    XULRunner 将所有数据存储在配置文件中 - 创建新配置文件时从头开始是它的重点。您真的应该重新考虑将数据存储在用户配置文件之外,这通常是出乎意料的,而且是个坏主意。

    但如果您真的想这样做,那么您只能靠自己,您需要在用户配置文件之外的某个地方存储一个自定义文件。例如,您可以将文件存储在用户的主目录中:

    Components.utils.import("resource://gre/modules/FileUtils.jsm");
    var file = FileUtils.getFile("Home", ["data.txt"]);
    // Write to file here
    

    该文件将为该计算机用户的所有配置文件共享。如需更多信息,请参阅documentation

    请注意,即使这种方法也无法让您在同一台计算机上的不同用户之间共享首选项 - 通常没有保证所有用户都具有写入权限的目录。

    【讨论】:

    • 是的,最后我使用 nsIPrefService.savePrefFile 将配置文件首选项保存到文件中。然后在应用程序加载时使用 nsIPrefService.readUserPrefs 加载首选项。这是丑陋的方式,但它解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 2020-02-07
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多