电子桌面应用程序 - 通过传递参数加载网址 - javascript

时间:2016-07-19 04:04:30

标签: javascript jquery desktop-application electron custom-url-protocol

我想使用自定义网址架构对用户进行身份验证,其链接如下所示

appName://https://www.sitename.com/user-token

我在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'
    });

现在,当用户点击此

时,如何更改网址
<a href="appName://https://www.sitename.com/user-token">Open App</a>

任何帮助?

1 个答案:

答案 0 :(得分:1)

您必须阅读您的电子模型中的参数并使用它来更新网址。可能你需要Base64解码你想要的网址:

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;);    

        }
    };
}