Skip to content

javalikescript/webview-c

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

Overview

A tiny cross-platform webview C library to build modern cross-platform GUIs.

It supports two-way JavaScript bindings, to call JavaScript from C and to call C from JavaScript.

It uses Cocoa/WebKit on macOS, gtk-webkit2 on Linux and MSHTML (IE10/11) or Edge (Chromium) on Windows.

This library is a fork of the webview library. The goal of this fork is mainly to retain the support of MinGW, the C language and the IE fallback on Windows.

A Lua binding is available.

Limitations

Opening multiple webviews is not supported.

Mac OS is not supported as I do not have access to a development environment on this OS.

Example

Look at the example webview-example.c.

#define WEBVIEW_IMPLEMENTATION
/* don't forget to define WEBVIEW_WINAPI,WEBVIEW_GTK or WEBVIEW_COCAO */
#include "webview.h"

int main() {
  /* Open Lua in a 800x600 resizable window */
  webview_run("Minimal webview example", "https://www.lua.org", 800, 600, 1);
  return 0;
}

Build it using the following command line.

# Linux
gcc webview-example.c -DWEBVIEW_GTK=1 `pkg-config --cflags --libs gtk+-3.0 webkit2gtk-4.0` -o webview-example

# MacOS
gcc -ObjC -DOBJC_OLD_DISPATCH_PROTOTYPES=1 webview-example.c -DWEBVIEW_COCOA=1 -framework WebKit -o webview-example

# Windows (MinGW)
gcc webview-example.c -DWEBVIEW_WINAPI=1 -Ims.webview2/include -lole32 -lcomctl32 -loleaut32 -luuid -lgdi32 -o webview-example.exe -w

Edge

The Edge (Chromium) implementation requires the extra library WebView2Loader.dll part of the Microsoft Edge WebView2 SDK. The environment variable WEBVIEW2_WIN32_PATH can be used to pass the folder containing the extra library.

The WebView2 Runtime shall be installed with the same architecture, x64 or x86.

There is a minimum Microsoft Edge version required, here 86.0.616 (full compatibility: 96.0.1245) for 1.0.1245.

The WebView2 SDK may fail to auto detect the WebView2 Runtime installation path to use, you could indicate the correct installation path by using the environment variable WEBVIEW2_BROWSER_EXECUTABLE_FOLDER.

The Microsoft Edge Stable channel is unavailable for WebView2 usage to prevent apps from taking a dependency on the browser in production. If you still want to use an Microsoft Edge Stable channel for WebView2 you may create a symbolic link named Edge-Application using the following command as administrator.

cd "\Program Files (x86)\Microsoft"
mklink /D Edge-Application Edge\Application

Note that this implementation creates a folder for the user data, you could specify a user data folder by using the environment variable WEBVIEW2_USER_DATA_FOLDER.

About

A tiny cross-platform webview C library to build modern cross-platform GUIs

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published