【问题标题】:Electron app window does not gain focus when distributed for Mac为 Mac 分发时,Electron 应用程序窗口没有获得焦点
【发布时间】:2018-10-03 18:22:33
【问题描述】:

这对我来说很奇怪。我有一个 Electron 应用程序,当我在本地运行它时运行良好。但是,当我npm run dist它创建一个原生版本时,当我点击它时,生成的应用程序无法获得焦点。我单击窗口中的文本字段,然后会出现一个闪烁的光标,但是,当我键入击键时,它们会转到我之前所在的窗口(例如 Finder)。当我使用打包版本时,这只发生在 Mac(Windows 工作正常)中。

非常令人困惑的东西:)

我的 package.json 看起来像这样(清理了一些名称和 URL):

{
  "name": "Myapp",
  "productName": "MyApp",
  "version": "0.0.44",
  "description": "MyApp",
  "license": "",
  "repository": "",
  "main": "./main.js",
  "author": {
    "name": "MyApp Ltd.",
    "email": "c@c.com",
    "url": "www.c.com"
  },
  "engines": {
    "node": ">=4"
  },
  "electronVersion": "1.8.3",
  "scripts": {
    "test": "mocha",
    "start": "electron .",
    "pack": "build --dir",
    "dist": "build"
  },
  "build": {
    "appId": "MyApp",
    "win": {
      "target": "squirrel",
      "icon": "assets/icons/Windows_Icon.ico"
    },
    "squirrelWindows": {
      "loadingGif": "assets/img/installing.gif",
      "iconUrl": "https:/fake-url.com/icon.ico",
      "msi": false
    },
    "dmg": {
      "window": {
        "x": 200,
        "y": 200,
        "width": 537,
        "height": 374
      },
      "icon": "assets/icons/Mac_Icon.icns",
      "background": "assets/img/dmg-background.png"
    },
    "mac": {
      "icon": "assets/icons/Mac_Icon.icns",
      "extendInfo": {
        "LSBackgroundOnly": 1
      }
    }
  },
  "dependencies": {
    "azure-event-hubs": "0.0.4",
    "babel-polyfill": "^6.20.0",
    "bootstrap": "^3.3.7",
    "chokidar": "^1.6.1",
    "download": "^5.0.2",
    "electron-debug": "^0.3.0",
    "electron-is-dev": "^0.3.0",
    "electron-json-storage": "^3.0.4",
    "electron-log": "^2.2.6",
    "electron-positioner": "^3.0.0",
    "electron-squirrel-startup": "^1.0.0",
    "follow-redirects": "^1.2.3",
    "glob": "^7.1.1",
    "howler": "^2.0.3",
    "jquery": "^3.2.1",
    "nan": "^2.1.0",
    "nconf": "^0.7.2",
    "node-schedule": "^1.2.5",
    "opener": "^1.4.3",
    "pusher-js": "^4.1.0",
    "sqlite3": "^3.1.8",
    "unirest": "^0.5.1"
  },
  "devDependencies": {
    "chai": "^4.0.2",
    "chai-as-promised": "^6.0.0",
    "electron": "^1.8.3",
    "electron-builder": "^20.8.0",
    "electron-builder-squirrel-windows": "^20.9.0",
    "electron-installer-dmg": "^0.2.1",
    "electron-packager": "^5.1.1",
    "mocha": "^3.2.0",
    "spectron": "^3.0.0",
    "xo": "^0.10.0"
  },
  "xo": {
    "esnext": true,
    "envs": [
      "node",
      "browser"
    ]
  }
}

【问题讨论】:

  • 尝试发布你的 package.json 的内容,这样人们就可以知道你的 dist 脚本实际上在做什么,这将有助于调试
  • 谢谢@AlienHoboken,我已经做到了。

标签: electron electron-builder electron-packager


【解决方案1】:

Mac 中的 LSBackgroundOnly 选项显然具有这种效果,因为它将应用程序指定为后台应用程序,并且可能不会向其传递任何事件。一旦我将其设置为 false,问题就解决了。

【讨论】:

    猜你喜欢
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多