如何添加自定义Java脚本代码到electronnet.net mvc中的electronhothook



我正在尝试将此代码片段添加到wed api演示项目中,但是我尝试了并且失败了,并且没有太多关于如何做到这一点的文档。

var os = require("os");
var bytesAvailable = os.totalmem(); // returns number in bytes
// 1 mb = 1048576 bytes
console.log("Total memory available MB :" + (bytesAvailable/1048576) );

它需要有一个类型脚本文件和一个javascript文件根据实现与创建excel.js演示,但我不知道如何去这个过程。

供大家参考,开发人员为此制作了一个体面的教程,但让我们只使用那种有点愚蠢但有能力的开发人员。

基本上你会想要用索引创建一个类型脚本文件。作为模板的Ts文件

一旦你有了一个类型脚本文件,把你的自定义JS放在脚本的onHostRead()部分

构建它这将创建js文件,使其看起来与其他示例文件相似。

为您的自定义js创建一个控制器,如hostook .cs,这在API演示中称为mainfunction

添加前置逻辑到您的软件. ....所以我还在测试我是否做对了

这在visual studio代码中不起作用,我使用visual studio 2022

不要安装visual studio推荐的类型脚本nuget包,它不在文档中,会破坏构建。

有时候有能力的人太忙了,没有时间帮忙,所以深入代码并变得更好(在这里自言自语)

ipController.cs

using ElectronNET.API;
using ElectronNET.API.Entities;
using Microsoft.AspNetCore.Mvc;
using System.Linq;
namespace ElectronNET_API_Demos.Controllers
{
public class IPController : Controller
{
public IActionResult Index()
{
if (HybridSupport.IsElectronActive)
{
Electron.IpcMain.On("start-hoosthook", async (args) =>
{
var mainWindow = Electron.WindowManager.BrowserWindows.First();
var options = new OpenDialogOptions
{
Properties = new OpenDialogProperty[]
{
OpenDialogProperty.openDirectory
}
};
var folderPath = await Electron.Dialog.ShowOpenDialogAsync(mainWindow, options);
var resultFromTypeScript = await Electron.HostHook.CallAsync<string>("get-ip-address", folderPath);
Electron.IpcMain.Send(mainWindow, "ip-address-found", resultFromTypeScript);
});
}
return View();
}
}
}

ipAddress.ts

// @ts-ignore
import * as Electron from "electron";
import { Connector } from "./connector";
import { IPAddress } from "./ipAddress";
export class HookService extends Connector {
constructor(socket: SocketIO.Socket, public app: Electron.App) {
super(socket, app);
}
onHostReady(): void {
// execute your own JavaScript Host logic here
var os = require("os");
var result = console.log(os.networkInterfaces);

return result;
}
}

ipAddress.js


"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HookService = void 0;
const connector_1 = require("./connector");
class HookService extends connector_1.Connector {
constructor(socket, app) {
super(socket, app);
this.app = app;
}
onHostReady() {
// execute your own JavaScript Host logic here
var os = require("os");
var result = console.log(os.networkInterfaces);
return result;
}
}
exports.HookService = HookService;
//# sourceMappingURL=ipAddress.js.map

相关内容

  • 没有找到相关文章

最新更新