gpt4 book ai didi

ionic-framework - 我可以从应用程序的 Ionic 部分调用 Ionic 4/Capacitor Electron 代码吗?

转载 作者:行者123 更新时间:2023-12-03 12:28:42 25 4
gpt4 key购买 nike

我正在研究使用 Ionic 4/Capacitor 通过 Electron 选项来定位 Windows,用于我想使用 SQLite 的应用程序。

使用 Ionic Native SQLite插件, package this Cordova plugin ,开箱即用,据我所见,Windows 支持 UWP,而不是桌面,它在 ionic 电容器 package 器中使用 Electron 运行。

我的计划是看看我是否可以使用 Electron SQLite包,然后从我的 Ionic 应用程序中调用它,方法是为 Ionic native 创建一个 package 类,类似于我过去通过遵循 this tutoral 获得浏览器支持的类。

如果我可以从我的 Ionic 应用程序中调用 Electron 代码,那么我不明白为什么这不起作用。

所以,我的问题是,我可以调用代码(我将添加函数以使用 SQlite)我从 Ionic(Web)代码中添加到托管 Electron 应用程序吗? 如果是这样,怎么办?

提前感谢您的帮助

[更新1]

尝试了以下...

从 Ionic 页面,我有一个按钮单击处理程序,我在其中引发了一个事件..

export class HomePage {

public devtools() : void {
let emit = new EventEmitter(true);
emit.emit('myEvent');

var evt = new CustomEvent('myEvent');
window.dispatchEvent(evt);
}

然后在 Electron 项目中 index.js , 我试过..
    mainWindow.webContents.on('myEvent', () => {
mainWindow.openDevTools();
});

const ipc = require('electron').ipcMain
ipc.on('myEvent', (ev, arg) => {
mainWindow.openDevTools();
});

但都没有奏效。

我应该提到我对 Electron 知之甚少。这是我第一次接触它(通过电容器)

最佳答案

我昨天对此进行了研究,并为您提供了一个使用角度的示例(这也应​​该适用于 ionic )。
在您的服务中声明要求,以便我们可以使用它

  //Below your imports
declare function require(name:string);

然后在您想要使用它的任何功能中:
// Require the ipcRenderer so we can emit to the ipc to call a function
// Use ts-ignore or else angular wont compile
// @ts-ignore
const ipc = window.require('electron').ipcRenderer;
// Send a message to the ipc
// @ts-ignore
ipc.send('test', 'google');

然后在 Electron 文件夹中创建的 index.js
// Listening for the emitted event
ipc.addListener('test', (ev, arg) => {
// console.log('ev', ev);
console.log('arg', arg);
});

它可能不是访问它的正确方法,但它是我能找到的最佳方法。据我了解,ipcRenderer 用于当您有多个浏览器在 Electron 中相互交谈时。所以在我们的情况下,它使我们的 web 层能够与 Electron 的东西进行通信

关于ionic-framework - 我可以从应用程序的 Ionic 部分调用 Ionic 4/Capacitor Electron 代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53976737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com