当我在macOS上运行我的电子应用程序时,我想读取deeplinkingUrl附带的所有参数。当我的应用程序通过Windows上的协议调用时,我可以从process.argv
中读取deeplinkingUrl。但是在macOS上这是不可能的,因为process.argv给出-psn...
,并且在第一次启动应用程序时仅给出一次该参数。
我想在我的应用程序不在macOS上的后台运行时通过从浏览器调用协议来触发open-url
。但是此事件仅在应用程序运行时触发。当应用未运行时,应用会显示,但不会根据deeplinkingUrl附带的操作进行导航。
我也在package.json
中写了那些:
"protocols": {
"name": "My App",
"schemes": [
"myapp"
]
}
electron.js
中的那些:
let clickToCallObj = {};
let deeplinkingUrl;
let mainWindow;
app.on('open-url', (event, url) => {
event.preventDefault();
const isDefaultProtocolClientSet = app.isDefaultProtocolClient('myapp');
deeplinkingUrl = url;
clickToCallObj.operation = utils.getOperation(deeplinkingUrl); //e.g. myapp:/call/12345 -> operation: call
if (mainWindow && isDefaultProtocolClientSet) {
mainWindow.isMinimized() ? mainWindow.restore() : null;
mainWindow.focus();
sendClickToCallEvent(clickToCallObj, deeplinkingUrl); //takes the action with coming operation and deeplinkingUrl
}
});
所以,当我不在后台运行的macOS上调用我的应用程序时,如何获得deeplinkingUrl?