问题
Is there any way to initiate opening file in system default application in Add-on SDK environment, or at least in Firefox plugin in general?
I'm looking for multi-platform solution, so I'd rather avoid things like platform detection + require("sdk/system/child_process").exec()
+ (open
, xdg-open
, RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL
).
Something like Desktop#open from Java world would be ideal.
回答1:
The solution is method nsIFile#launch(). Instance of nsIFile based on file path can be obtained using FileUtils#File constructor.
Following code demonstrates usage of launch
method to open home directory in default file browser in Add-on SDK code.
var homeDir = require('sdk/system').pathFor('Home');
require('chrome').Cu.import('resource://gre/modules/FileUtils.jsm');
new FileUtils.File(homeDir).launch();
来源:https://stackoverflow.com/questions/26314232/how-to-open-file-in-mozilla-add-on-sdk-using-system-default-application