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
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
.