@deepkolos/electron-trackpad-utils
Version:
Trigger trackpad haptic feedback and get trackpad scroll began, scroll ended, and force click events in Electron on macOS.
115 lines (75 loc) • 2.51 kB
Markdown
# electron-trackpad-utils-zh
[English](./README.en-US.md)
> 在 Electron on macOS 中触发触控板触觉反馈,并获取触控板滚动开始、滚动结束和强制点击事件。
[查看演示代码](demo)
## 安装
npm install @deepkolos/electron-trackpad-utils
## API
**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 中使用
如果你正在使用 `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 许可证
## 原始仓库
[davidcann/electron-trackpad-utils](https://github.com/davidcann/electron-trackpad-utils)