All Projects → cba85 → Electron Webview

cba85 / Electron Webview

Licence: mit
💻 A simple electron webview with cool features.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Electron Webview

Vue Bridge Webview
javascript bridge android/ios webview
Stars: ✭ 52 (-54.78%)
Mutual labels:  webview
Easy web view
Flutter Web Views on Mobile and Web made easy!
Stars: ✭ 85 (-26.09%)
Mutual labels:  webview
Codeview
Codeview is an Android library that lets you preview code in webview very easy and simple with highlights and colors.
Stars: ✭ 103 (-10.43%)
Mutual labels:  webview
Parser Javascript
Browser sniffing gone too far — A useragent parser library for JavaScript
Stars: ✭ 66 (-42.61%)
Mutual labels:  webview
Flutter inappwebview
A Flutter plugin that allows you to add an inline webview, to use a headless webview, and to open an in-app browser window.
Stars: ✭ 1,259 (+994.78%)
Mutual labels:  webview
Iamport React Native
React Native용 아임포트 일반.결제 및 휴대폰 본인인증 모듈입니다.
Stars: ✭ 88 (-23.48%)
Mutual labels:  webview
Customtabs Kotlin
Helpers of the Chrome Custom tabs re-written in Kotlin and with Architecture Components to offer a simpler API
Stars: ✭ 48 (-58.26%)
Mutual labels:  webview
Spidereye
Cross platform .Net Core applications with a webview UI
Stars: ✭ 113 (-1.74%)
Mutual labels:  webview
Flutter browser app
A Full-Featured Mobile Browser App (such as the Google Chrome mobile browser) created using Flutter and the features offered by the flutter_inappwebview plugin.
Stars: ✭ 85 (-26.09%)
Mutual labels:  webview
Unity Webview
主に gree/unity-webview のリファクタリング。本家を元に改良してく!
Stars: ✭ 102 (-11.3%)
Mutual labels:  webview
Journey
JCEF-powered cross-platform web browser
Stars: ✭ 68 (-40.87%)
Mutual labels:  webview
Coolindicator
A dazzling indicator
Stars: ✭ 85 (-26.09%)
Mutual labels:  webview
React Native Webview Crosswalk
Crosswalk's WebView for React Native on Android.
Stars: ✭ 92 (-20%)
Mutual labels:  webview
Ultimaterefreshview
UltimateRefreshView 实现下拉刷新,上拉加载更多的轻量级库;支持RecyclerView ,ListView ,ScrollView & WebView
Stars: ✭ 64 (-44.35%)
Mutual labels:  webview
React Native Webview Autoheight
WebView which sets it's height automatically with minimal efforts
Stars: ✭ 106 (-7.83%)
Mutual labels:  webview
Agentweb
AgentWeb is a powerful library based on Android WebView.
Stars: ✭ 8,375 (+7182.61%)
Mutual labels:  webview
Android Ssl Pinning Webviews
A simple demo app that demonstrates Certificate pinning and scheme/domain whitelisting in Android WebViews
Stars: ✭ 86 (-25.22%)
Mutual labels:  webview
Pull To Refresh
ESPullToRefresh is developed and maintained by Vincent Li. If you have any questions or issues in using ESPullToRefresh, welcome to issue. If you want to contribute to ESPullToRefresh, Please submit Pull Request, I will deal with it as soon as possible.
Stars: ✭ 1,591 (+1283.48%)
Mutual labels:  webview
Kotlin Playground
Kotlin practice
Stars: ✭ 111 (-3.48%)
Mutual labels:  webview
3dsview
Android UI component to process banking 3D Secure (MasterCard SecureCode / Verified By Visa) payment authorizations in Android apps.
Stars: ✭ 96 (-16.52%)
Mutual labels:  webview

Electron webview

This is a simple Electron application to create a webview.

Features:

  • Responsive window
  • Remember the window dimensions when reopening
  • Menu & keyboard shortcuts for MacOs
  • No title bar
  • Home button
  • Print function
  • MacOS, Windows and Linux executable with an app icon
  • DMG installer for Mac

Electron webview

This Electron webview application needs just these files:

  • package.json - Points to the app's main file and lists its details and dependencies.
  • main.js - Starts the app and creates a browser window to render website. This is the app's main process.
  • index.html - A web page to render. This is the app's renderer process.
  • assets/ - Assets for the project (style, scripts, icons)
  • src/ - Sources folder:
    • menu.js : menu template customization
    • view.js : browser view usage
    • window.js : browser window customization

Note: check the offical Electron quick start if you need to learn the basics about Electron.

Usage

To run this repository you'll need Node.js (which comes with npm) installed on your computer. From your command line:

# Install dependencies
$ npm install
# Run the app
$ npm start

Electron 12 update

Configuration

You just need to change the src attribute of the webview in index.html file to display the url you want in your webview.

Alternatively, it's also possible to just load an external URL:

  // Comment
  //mainWindow.loadURL(`file://${__dirname}/index.html`); // Load custom html file with external content using webview tag

  // Uncomment
  mainWindow.loadURL("https://github.com"); // Load directly an URL if you don't need interface customization

   // Or uncomment if you prefer to use BrowserView:
  const view = require("./src/view");
  view.createBrowserView(mainWindow);

Developer tools

You can show by default the developer tools by uncommenting in main.js file: mainWindow.openDevTools();.

Title bar

You can hide the title bar of the app by setting frame: false or titleBarStyle: 'hidden' when creating the window in main.js in mainWindow variable.

If you keep displaying the topbar using titleBarStyle: 'hidden' setting, you would have to adjust the topbar style.

For example:

#controls {
  padding-top: 1.5em;
}

Window dimensions and responsive

This webview is responsive and supports live dimensions change of the window. This webview remembers the window size you have before quitting the app to use it when you open it again.

If you want to change the window dimensions at the first start, change width and height in main.js file in mainWindow variable when creating the window.

Menu and keyboard shortcuts

This webview integrates an Electron menu. It will also make standard keyboard shortcuts, like copy and paste, work on MacOS.

You can modify this menu in src/menu.js file.

Topbar (home and print buttons)

A topbar to show buttons:

  • "Home" button to come back to your app if your website has external links.
  • "Print" button to print the current url displayed by the webview.

You can activate/deactivate this topbar (activate by default).

Deactivation

In src/window.js:
// Comment
// preload: path.join(__dirname, "../preload.js"), // required for print function
In index.html:
<!-- Comment -->
<!-- <link rel="stylesheet" href="assets/css/topbar.css" /> -->
<!-- <div id="controls">...</div> -->
<!-- <script src="assets/js/renderer.js"></script> -->

<!-- Uncomment -->
<link rel="stylesheet" href="assets/css/no-topbar.css" />
In assets/js/renderer.js:
// Comment
//homeButton();

Activation

  • Do the opposite of what you did in the activation chapter above.
  • Don't forget to set the homepage of your app in the data-home attribute of webview in index.html file to make the "Home" button works.
  <!-- Webview -->
  <webview
    id="webview"
    autosize="on"
    src="https://www.github.com"
    data-home="https://www.github.com"
  ></webview>

Application

To create a MacOS, Windows and Linux executable with an app icon, follow these instructions.

Electron app icon

For this we need a 1024x1024 png-icon, a .icns for macs and a .ico for windows. For Linux we only need the pngs.

  • Create your app icon

  • Go to iConvert Icons and upload the PNG and the service will take care of creating the other icon-formats.

  • Add your files in assets/icons: put the .icns file into the mac folder, the pngs in the png folder and the .ico file in the win folder.
    Rename the .icns and .ico files in icon.

Mac

On Mac, the .icns icon converted with iConvert Icons doesn't work.

I recommend using Image2icon, an awesome free app to create and personalize icons from your pictures, available on the Mac Store.

The .icns icon converted with Image2icon perfectly works on Mac.

Electron packager

"Electron Packager is a command line tool and Node.js library that bundles Electron-based application source code with a renamed Electron executable and supporting files into folders ready for distribution."

Install Electron packager

# for use in npm scripts
$ npm install electron-packager --save-dev

# for use from cli
$ npm install electron-packager -g

Application name

Change the productName in package.json

Build MacOS, Windows and Linux package from the terminal

MacOS

$ electron-packager . --overwrite --platform=darwin --arch=x64 --icon=assets/icons/mac/icon.icns --prune=true --out=release-builds

Windows

$ electron-packager . --overwrite --asar=true --platform=win32 --arch=ia32 --icon=assets/icons/win/icon.ico --prune=true --out=release-builds --version-string.CompanyName=CE --version-string.FileDescription=CE --version-string.ProductName="Electron Webview"

Linux (Ubuntu)

$ electron-packager . --overwrite --platform=linux --arch=x64 --icon=assets/icons/png/1024x1024.png --prune=true --out=release-builds

Shortcuts

To make it easier to create new builds, scripts are added in package.json.

Now you can run:

$ npm run package-mac
$ npm run package-win
$ npm run package-linux

Mac installer

To create a DMG installer for our Electron app we can use the electron-installer-dmg package.

To create a DMG installer you first need to package the app as we saw in the Application chapter above.

Install

# For use in npm scripts
$ npm install electron-installer-dmg --save-dev

# For use from cli
$ npm install electron-installer-dmg -g

Create the DMG

$ electron-installer-dmg ./release-builds/Electron\ webview-darwin-x64/Electron\ webview.app electron-webview --out=release-builds --overwrite --icon=assets/icons/mac/icon.icns

An electron-webview.dmg file is now created in the release-builds folder.

Shortcuts

To make it easier to create new DMG installer, a script is added in package.json.

Now you can run:

$ npm run create-installer-mac

Source

Based on:

References

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].