将Electron(NodeJS)包导入HTML文件

时间:2018-07-09 17:05:31

标签: javascript html node.js electron

当前,我正在开发一个桌面应用程序,该应用程序允许用户单击按钮来运行终端命令。尽管我遇到了一个我无法解决的问题,但我几乎已经用电子完成了它。

我的应用程序由两个文件组成:main.js和index.html。 javascript文件显示index.html,包括所需的电子封装,并包含index.html调用的所有功能。我正在使用的软件包之一是Electron-Preferences。这使我可以创建一个简单的窗口,以将用户首选项存储在JSON文件中,以及访问和更改它们。我有一个功能可以让用户即时更改一个首选项,但是,在从index.html文件调用此功能时遇到了问题。

在main.js文件中,定义了一个名为preferences的对象。但是,在我的html文件中,它说未定义此对象,因此它无法运行程序(我通过脚本src标记将main.js包含在html文件中)。有没有什么方法可以包含首选项对象,或者有什么方法可以重组代码,以便我可以从单独的文件中调用函数?

谢谢你!

main.js中的函数:

function setNetworkMain(){

    const network = preferences.value('blockchain.network');

    if(network === "testing"){
        preferences.value('blockchain.network', 'main');
    }
};

首选项对象:

const preferences = new ElectronPreferences({
/**
 * Where should preferences be saved?
 */
'dataStore': prefLoc,
/**
 * Default values.
 */
'defaults': {
    'markdown': {
        'auto_format_links': true,
        'show_gutter': false
    },
    'preview': {
        'show': true
    },
    'drawer': {
        'show': true
    },
    "blockchain": {
        "network": "main"
    },
    "update": {
        "auto_update": true
    },
    "directory": {
        "folder": dataDir
    },
},
/**
 * If the `onLoad` method is specified, this function will be called immediately after
 * preferences are loaded for the first time. The return value of this method will be stored as the
 * preferences object.
 */
'onLoad': (preferences) => {
    // ...
    return preferences;
},
/**
 * The preferences window is divided into sections. Each section has a label, an icon, and one or
 * more fields associated with it. Each section should also be given a unique ID.
 */
'sections': [
    {
        'id': 'blockchain',
        'label': 'Blockchain Settings',
        'icon': 'settings-gear-63',
        'form': {
            'groups': [
                {
                    'label': 'Blockchain Settings',
                    'fields': [
                        {
                            'heading': 'Blockchain Network',
                            'content': "<p>Text</p>",
                            'type': 'message',
                        },
                        {
                            'key': 'network',
                            'type': 'radio',
                            'options': [
                                {'label': 'Main', 'value': 'main'},
                                {'label': 'Testing', 'value': 'testing'},
                            ],
                            'help': 'Select which Blockchain you would like to use.'
                        }
                    ]
                }
            ]
        }
    },
    {
        'id': 'update',
        'label': 'Update Settings',
        'icon': 'square-download',
        'form': {
            'groups': [
                {
                    /**
                     * Group heading is optional.
                     */
                    'label': 'Update Settings',
                    'fields': [
                        {
                            'label': 'How would you like to check for updates?',
                            'key': 'auto_update',
                            'type': 'radio',
                            'options': [
                                {'label': 'Automatically check for updates', 'value': true},
                                {'label': 'Manually check for updates', 'value': false},
                            ],
                            'help': 'Note: Automatic updates will be installed automatically.'
                        },
                    ]
                }
            ]
        }
    },
    {
        'id': 'directory',
        'label': 'File Directory',
        'icon': 'folder-15',
        'form': {
            'groups': [
                {
                    'label': 'File Directory',
                    'fields': [
                        {
                            'label': 'Blockchain storage directory',
                            'key': 'folder',
                            'type': 'directory',
                            'help': 'Text.'
                        }
                    ]
                }
            ]
        }
    },
    {
        'id': 'about',
        'label': 'About',
        'icon': 'badge-13',
        'form': {
            'groups': [
                {
                    'label': 'About',
                    'fields': [
                        {
                            'label': 'description',
                            'heading': 'Description',
                            'content': "<p>Text</p>",
                            'type': 'message',
                        },
                        {
                            'label': 'electron',
                            'heading': 'Electron',
                            'content': "<p>https://electronjs.org/</p>",
                            'type': 'message',
                        },
                    ]
                }
            ]
        }
    }
]
});

0 个答案:

没有答案