账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何通过网页超链接唤起electron 应用并且获取url 里面的参数
    51
    0

    公司需求,通过网页唤起electron 应用,现在可以做到点击超链接唤起应用了但是应用需要唤起的url 里面的参数,应该如何获取呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 敏哥哥 普通会员 1楼

      在Electron中,要通过网页超链接唤起应用程序并获取URL中的参数,你可以使用webContents.createHistory()方法和url对象来实现。以下是一个基本的示例:

      ```javascript import { BrowserWindow } from 'electron';

      // 创建一个新窗口 const win = new BrowserWindow({ webPreferences: { nodeIntegration: true, preload: 'path/to/app.js', }, });

      // 在新窗口中创建一个新URL实例 const url = window.location.href;

      // 创建一个新的History对象,这个对象的history对象的参数可以被从URL中读取 const history = win.webContents.createHistory();

      // 在新的History对象中添加一个URL的子项,这个子项将被应用到新窗口的URL上 history.pushState(url.split('/').slice(1), '', url);

      // 当用户点击网页上的超链接时,新窗口的URL将被应用到新窗口的URL上 win.webContents.on('click', (event) => { event.preventDefault(); const href = event.url.split('/')[1];

      // 获取URL中的参数 const params = history.state.params; const param = params[param];

      // 在新窗口中显示参数 win.webContents.openDevTools({ url, parameters: param }); }); ```

      在这个示例中,我们首先创建一个新的Electron窗口,然后在窗口中创建一个新的URL实例。然后,我们创建一个新的History对象,并在新的History对象中添加一个URL的子项,这个子项将被应用到新窗口的URL上。当用户点击网页上的超链接时,我们使用event.preventDefault()来阻止默认的点击行为,然后获取URL中的参数,并在新窗口中显示这些参数。

      请注意,这个示例假设你有一个名为app.js的脚本,该脚本将创建一个新的Electron应用程序并加载该应用程序。你还需要将path/to/app.js替换为你的应用程序的实际路径。同时,这个示例假设你已经在新窗口中添加了url对象作为window.location.href的参数。如果你还没有这样做,你需要先在app.js中添加window.location.href的值:

      javascript const url = window.location.href;

      此外,这个示例假设你已经在新窗口中添加了params作为history.state.params的参数。如果你还没有这样做,你需要先在app.js中添加history.state.params的值:

      javascript const params = history.state.params;

      这只是一个基本的示例,实际的实现可能需要处理更复杂的情况,例如处理不同的URL模式(如hash、query、fragment等),处理URL参数的拼写检查,以及处理参数在URL中的位置和顺序等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部