feat(alwaysontop):Implement

This commit is contained in:
hristoterezov 2017-07-14 16:24:30 -05:00
parent 4dd37fb949
commit aac7c92b39
4 changed files with 28 additions and 39 deletions

View File

@ -3,8 +3,7 @@ Jitsi Meet Electron
Electron application for [Jitsi Meet](https://github.com/jitsi/jitsi-meet).
## Configuration
You can change the Jitsi Meet deployment url with the jitsiMeetURL property
from config.js
You can change the Jitsi Meet deployment domain with the jitsiMeetDomain property from config.js
## Building the sources
```bash

View File

@ -1,6 +1,6 @@
module.exports = {
/**
* The URL of the Jitsi Meet deployment that will be used.
* The domain of the Jitsi Meet deployment that will be used.
*/
jitsiMeetURL: "https://meet.jit.si/"
jitsiMeetDomain: "meet.jit.si"
};

View File

@ -10,11 +10,6 @@
body {
-webkit-app-region: drag
}
iframe {
width: 100%;
height: 100%;
border: 0 none;
}
</style>
</head>
<body>

View File

@ -1,40 +1,35 @@
/* global process */
const utils = require("jitsi-meet-electron-utils");
/* global process, JitsiMeetExternalAPI */
const {
RemoteControl,
setupScreenSharingForWindow
} = utils;
const config = require("../../config.js");
} = require("jitsi-meet-electron-utils");
const { jitsiMeetDomain } = require("../../config.js");
/**
* The remote control instance.
* Loads a script from a specific source.
*
* @param src the source from the which the script is to be (down)loaded
* @param loadCallback on load callback function
* @param errorCallback callback to be called on error loading the script
*/
let remoteControl;
function loadScript(
src,
loadCallback = () => {},
errorCallback = console.error) {
const script = document.createElement('script');
/**
* Cteates the iframe that will load Jitsi Meet.
*/
let iframe = document.createElement('iframe');
iframe.src = process.env.JITSI_MEET_URL || config.jitsiMeetURL;
iframe.allowFullscreen = true;
iframe.onload = onload;
document.body.appendChild(iframe);
script.async = true;
/**
* Handles loaded event for iframe:
* Enables screen sharing functionality to the iframe webpage.
* Initializes postis.
* Initializes remote control.
*/
function onload() {
setupScreenSharingForWindow(iframe.contentWindow);
iframe.contentWindow.onunload = onunload;
remoteControl = new RemoteControl(iframe);
script.onload = loadCallback;
script.onerror = errorCallback;
script.src = src;
document.head.appendChild(script);
}
/**
* Clears the postis objects and remoteControl.
*/
function onunload() {
remoteControl.dispose();
}
loadScript(`https://${jitsiMeetDomain}/external_api.js`, () => {
const api = new JitsiMeetExternalAPI(
process.env.JITSI_MEET_DOMAIN || jitsiMeetDomain);
const iframe = api.getIFrame();
setupScreenSharingForWindow(iframe);
new RemoteControl(iframe);
});