Настольное приложение Electron - загрузка URL путем передачи параметров - javascript
Я хочу аутентифицировать пользователя с помощью пользовательской схемы URL, в которой ссылка выглядит следующим образом
appName://https://www.sitename.com/user-token
Я успешно реализовал пользовательский URL в файле info.plist, чтобы при нажатии appName: // открывать мое приложение destop.
Мой код loadURL выглядит так в app.js
mainWindow.loadUrl('http://www.sitename.com/', {
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.52 Safari/537.36'
});
Теперь, как я могу изменить URL, когда пользователь нажимает эту
<a href="appName://https://www.sitename.com/user-token">Open App</a>
Любая помощь?
1 ответ
Вы должны прочитать аргументы в вашей электронной модели и использовать ее для обновления URL. Возможно, вам нужно Base64-декодировать желаемый URL:
module.exports = new function () {
var self = this,
app = require('electron').app;
// ...
self.buildWindow = function (url) {
app.on('ready', function () {
// ...
self.applyExternalData(process.argv, url);
}
};
self.applyExternalData = function (commandLine, currentUrl) {
var newUrl;
if (commandLine && commandLine[1] && commandLine[1].indexOf('appName://') === 0) {
newUrl = commandLine[1].replace('appName://', '');
self.mainWindow.webContents.executeJavaScript('window.document.location.href = ' + newUrl;);
}
};
}