Trigger trackpad haptic feedback and get trackpad scroll began, scroll ended, and force click events in Electron on macOS.
npm install @deepkolos/electron-trackpad-utils
> 在 Electron on macOS 中触发触控板触觉反馈,并获取触控板滚动开始、滚动结束和强制点击事件。
npm install @deepkolos/electron-trackpad-utils
onTrackpadScrollBegan(callback) (仅限 macOS)
- callback Function
当用户开始在触控板上拖动触摸时触发。
onTrackpadScrollEnded(callback) (仅限 macOS)
- callback Function
在滚动过程中触摸结束时触发。这可能与发送到浏览器的滚动事件结束的时间不同,例如在惯性滚动的情况下。
onScroll(callback) (仅限 macOS)
- callback Function
- deltaX Float
- deltaY Float
- isTrackpad Boolean
当用户滚动时触发。
onForceClick(callback) (仅限 macOS)
- callback Function
triggerFeedback() (仅限 macOS)
在 MacBook 的内置触控板或妙控板上触发触觉反馈。例如,在拖动对象时对齐时触发反馈。
在主进程中:
const { BrowserWindow } = require("electron");
const trackpadUtils = require("@deepkolos/electron-trackpad-utils");
trackpadUtils.onTrackpadScrollBegan(() => {
console.log("onTrackpadScrollBegan");
});
trackpadUtils.onTrackpadScrollEnded(() => {
console.log("onTrackpadScrollEnded");
});
trackpadUtils.onScroll(({ deltaX, deltaY, isTrackpad }) => {
console.log('onScroll', { deltaX, deltaY, isTrackpad });
});
trackpadUtils.onForceClick(() => {
console.log("onForceClick");
});
function createWindow() {
const mainWindow = new BrowserWindow({
height: 500,
width: 800,
});
mainWindow.webContents.loadFile("index.html");
setInterval(() => {
trackpadUtils.triggerFeedback();
}, 3000);
}
app.whenReady().then(() => createWindow());
如果你正在使用 electron-vite,你需要将 C/C++ 插件配置为外部模块。
``javascript
import { defineConfig } from 'electron-vite'
export default defineConfig({
main: {
build: {
rollupOptions: {
external: ['@deepkolos/electron-trackpad-utils']
}
}
}
})
``
克隆此存储库后,运行:
npm install
npm rebuild
cd demo
npm install
npm start
MIT 许可证