我目前正在构建一个add,我想在第一次运行时执行特定的代码。更具体地说,我想点击我的添加按钮,浏览我的文件并选择一个可执行文件。这个浏览过程应该只在第一次运行时完成,因为我希望我的按钮能够记住"在第一次运行后打开此特定文件。
jetpack.future.import("me");
var buttons = require('sdk/ui/button/action');
var button = buttons.ActionButton({
id: "execute-jar",
label: "Download Report",
icon: {
"16": "./icon-16.png",
"32": "./icon-32.png",
"64": "./icon-64.png"
},
onClick: handleClick
});
jetpack.me.onFirstRun(function(){ jetpack.notifications.show("Oh boy, I'm installed!");});
function handleClick(state) {
let {Cc, Ci} = require('chrome');
var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath("C:\\Users\\QaziWa\\DownloadReportPPE.jar");
if(file.exists()){
file.reveal();
file.launch();
}
else {
console.log('Failed.');
}
}
我在MDN上发现了这个:https://developer.mozilla.org/en-US/docs/Archive/Mozilla/Jetpack/Meta/Me
然而,这是存档的东西,当我尝试这个时,我的代码没有成功并获得:"消息:ReferenceError:未定义jetpack"。
我在这一点上非常难过,因为我已经看过几个与我想要的相关的问题,但是我无法弄清楚如何在我的附加组件中实现这个非常需要的功能。有人能指出我正确的方向或提供一些有效的代码示例吗?
编辑:为清楚起见:我不想硬编码路径。我打算添加允许用户选择他们希望执行的文件的功能。我的主要问题是如何在第一次运行时执行某段代码?