javascript - ElectronJS:将文件拖放到 Windows 任务栏上的电子应用程序图标上
问题描述
我正在尝试允许将文件拖到 Windows 中的电子应用程序中。有几件事起作用:
- 我可以将文件拖到桌面图标上 - 应用程序打开正常,我通过 argv 获得我需要的文件 - 无论是在应用程序关闭时(通过初始加载)还是在应用程序通过“第二实例”处理程序打开时.
- 我可以将文件拖到应用程序中 - 一切正常。
但是,我希望能够在应用程序运行时将文件拖动到 Windows 任务栏上的电子应用程序图标上。当我进行 SHIFT 拖动时,工具提示显示“使用 Electron 打开”,但是当我放下时……什么都没有发生。我已经尝试在“第二个实例”处理程序中进行控制台日志记录,这是我期望触发的......但没有。
app.on("second-instance", (event, argv) => {
log.info("HERE");
// Someone tried to run a second instance, we should focus our window.
if (argv.length >= 2) {
const urlPath = encodeURI(`file:///${argv[argv.length - 1]}`);
openDeepLink(`app://open-image-url?location=${urlPath}`, mainWindow);
}
if (mainWindow) {
if (mainWindow.isMinimized()) {
mainWindow.restore();
}
mainWindow.focus();
}
});
(当然,深层链接短代码并不是真正的“应用程序”)。"HERE" 的 log.info 永远不会触发(我已经测试过 log.info 可以在其他地方工作,以防万一,确实如此!)。
我正在运行:Windows 10(完全更新)电容器社区/电子:1.3.1 电子:11.0.1
解决方案
对 - 经过更多时间查看 - 我发现了问题:
我在 app.on("ready") 中有以下代码:
if (Notification.isSupported()) {
updateNotify = new Notification({
title: "Update Available",
body: "An update is available. It will be installed when you exit"
});
}
如果需要,稍后会调用 updateNotify.show()。事实证明,当我从“就绪”处理程序中删除该代码时,拖放工作正常。我现在已将相同的代码放入“更新下载”处理程序中,一切正常。不太清楚为什么代码破坏了拖放,但这似乎解决了它!
推荐阅读
- python - 与烧瓶项目的 href 链接出现错误 404。似乎找不到页面
- javascript - 具有折线图的虚拟测量设备
- swift - 了解不安全 swift 中数据复制的性能
- python - 如何从 csv 文件中绘制列的直方图
- python - Python计算我在一个列表中有多少重复项,其中有很多列表
- python - 使用字符串进行迭代是否有效,但使用整数进行迭代不起作用?
- php - 在服务器上安装 laravel 时出现致命的 PHP 错误
- azure - 如何将数组转换为 ARM 模板中一个对象的属性?
- circuit-sdk - 在昨天运行良好的 API 上出现“500”错误
- javascript - Javascript 使用 php 会话获取服务器数据