从零开始学Electron笔记(五)


在之前的文章我们介绍了一下Electron的右键菜单的制作,接下来我们继续说一下Electron如何通过链接打开浏览器和嵌入网页。

现在有这样一个需求,我们要在我们的软件中加一个链接,然后点击该链接打开Chrome浏览器来打开此链接,那我们该如何实现呢?

先来看一下上一章之后我们的目录结构:

 为了实现上面的需求,我们可以按照之前我们写前端代码一样写一个 a 标签来进行页面的跳转:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello worldtitle>
head>
<body>
<div>
    <a href="https://www.baidu.com" target="_self">点我跳转a>
    <a href="https://www.baidu.com" target="_blank">点我跳转a>
div>
body>
html>

我们在 index.html 中写入上述代码,用来进行我们的网页跳转,结果如下:

 第一个跳转其实是在自己的窗口跳转到了百度首页,第二个跳转是又单独开了一个窗口跳转到来百度首页,都没有实现我们想要的通过谷歌浏览器跳转页面。

在Electron中为我们提供了跳转到第三方页面的模块 shell,

官方shell模块地址:https://www.electronjs.org/docs/api/shell

我们将index.html改成如下:

 1 DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>hello worldtitle>
 6 head>
 7 <body>
 8 <div>
 9     <a id="aLink" href="https://www.baidu.com">点我跳转a>
10 
11 div>
12 <script>
13     let {shell} = require('electron');
14     let aLink = document.getElementById('aLink');
15 
16     aLink.onclick = function (e) {
17         // 阻止默认事件
18         e.preventDefault();
19         let aHref = this.getAttribute('href');
20         // 通过 shell 打开链接
21         shell.openExternal(aHref)
22     }
23 script>
24 body>
25 html>

在上面的代码中,我们通过引入shell模块,并根据 shell.openExternal() 方法就能在谷歌浏览器中打开我们的第三方浏览器来,还是比较简单的。

接下来我们再来看一下如何在我们的应用中嵌入第三方网页。

嵌入第三方网页我们可以使用iframe标签来进行嵌入:

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hello worldtitle>
head>
<body>
<div>
    <iframe src="https://www.baidu.com" frameborder="0" width="500" height="400">iframe>
div>
body>
html>

我们在index.html中通过iframe标签引入了百度首页,运行一下查看:

 从运行结果看还是符合我们的预期的。

在Electron中其实也为我们提供了一个类似与