Build GUI for your Python program with JavaScript, HTML, and CSS
BSD-3-CLAUSE License
Bot releases are visible (Hide)
All
Clear all the cookies (including HttpOnly) with window.clear_cookies()
. Sponsored by TBS
All
pywebview event handler can now have an optional window
parameter that holds an instance of the Window
object that triggered the event.Windows
Add window shadow with webview.create_window(..., shadow=True)
. Thanks @yllhwaCocoa
Fix showing windowQT
Fix fetching cookies in private modeQT
Fix blank screen in Pop! OS. Thanks @ysfchn.GTK
Fix frameless windows having a hard-coded minimum size. Thanks @coffeejunkPublished by r0x0r 8 months ago
All
Prevent infinite recursion in nested JS API #1327CEF
Crash due incorrect settings #1330QT
WebEnginePage not deleted after window is closed #1328QT
Blank screen on certain Linux systems #1325Published by r0x0r 8 months ago
All
Python 3.7 compatibilityPublished by r0x0r 8 months ago
QT
window position is returned in coordinates excluding the window frame to be in line with provided coordinates.EdgeChromium
CoreWebView2Settings exception in debug mode. #1323QT
Crashing when closing additional windows #525QT
DevTools failing to focus on openPublished by r0x0r 8 months ago
webview.settings
. You can now override default behaviour of pywebview by modifying this dictionary. Currently configurable settings include.webview.settings = {
'ALLOW_DOWNLOADS': False, # Allow file downloads
'ALLOW_FILE_URLS': True, # Allow access to file:// urls
'OPEN_EXTERNAL_LINKS_IN_BROWSER': True, # Open target=_blank links in an external browser
'OPEN_DEVTOOLS_IN_DEBUG': True, # Automatically open devtools when `start(debug=True)`.
}
webview.settings['ALLOW_DOWNLOADS'] = True
. Disabled by default.event['domTransfer']['files'][0]['pywebviewFullPath']
value in the drop
event caught on the Python side. To subscribe to the event you use window.dom.document.events.drop += on_drop
.window.maximize()
- maximize window.All
A more powerful JS data serializer capable of handling different data types and detecting circular references #1217All
Nested JS API support. See examples/js_api.py
for details. Thanks @AlecHaringAll
BREAKING: window.get_elements
returns a list of instances of a new Element
object.All
BREAKING: evaluate_js
throws a webview.errors.JavascriptException
if executed codes raises an errorWindows
WebView2 control updated to 1.0.2045.28Windows
Add SSL support for local HTTP server.GTK
Update deprecated codeCocoa
Suppress secure coding is not enabled for restorable state warning. Thanks @awesomo4000EdgeChromium
Background color not available in webview2. Thanks @VanthysEdgeChromium
Multiple focus events on window show. Thanks @yllhwaGTK
Fallback for Webkit4.0 if 4.1 not found. Thanks @starnight.QT
Fix user agent string. #1256 Thanks @TransparentLC.QT
Solve the blank main window issue on RHEL9. Thanks @justincui #1266QT
Submenu actions firing incorrectly #1318Published by r0x0r 12 months ago
GTK
Fallback for WebKit 4.0 if 4.1 not found.Published by r0x0r 12 months ago
Cocoa
Window not retaining focus on keystrokes. #1187Cocoa
App crashing when closing fullscreen window. #1236Cocoa
Video keeps playing after closing window. #1235Cocoa
Uploaded file is empty if filename contains a space. #1231Cocoa
Return value of confirmation dialog created by window.confirm
. #976Windows
Fullscreen application disappearing after disconnecting extended display. #1229All
Don't start http server for file:// urls. Thanks @glorpenGTK
Bump WebKit2 to 4.1. Thanks @starnightWindows
Disable swipe navigation #1230Windows
Window is changed to fullscreen on the current monitor in a multi-monitor setup.Published by r0x0r about 1 year ago
Published by r0x0r about 1 year ago
easy_drag
from being always enabled.Published by r0x0r about 1 year ago
Published by r0x0r about 1 year ago
webview.create_window(maximized=False)
Create a window in a maximized state. Thanks @vsajipwebview.create_window(screen=screen_instance)
Create a window on a specific monitor, where screen
is a screen returned by window.screens
. Thanks @louisnw01window.title
.webview.screens
is returned before webview.start
#1193webview.start()
call #1063. Thanks @PercentBoat4164Published by r0x0r over 1 year ago
Published by r0x0r over 1 year ago
Published by r0x0r over 1 year ago
webview.create_window(focus=False)
to create a non-focusable window. Thanks @mi4code #1030.pyobjc-framework-security
.Published by r0x0r over 1 year ago
Released 02/05/2023
webview.start(ssl=True)
. Thanks @keredsonPublished by r0x0r over 1 year ago
webview.start(storage_path)
can now be set in private mode. This can be useful if you do not have write access to EdgeChromium default data directory and get 0x80070005 (E_ACCESSDENIED) error. #1026AttributeError: module 'webview.http' has no attribute 'running'
exception occurring when multiple windows are opened. Thanks @YidaozhanYa. #1024create_window(hidden=True)
makes the show() command not work #1050Published by r0x0r over 1 year ago
Published by r0x0r almost 2 years ago
window.events
namespace. window.loaded
, window.shown
etc no longer work.examples/menu.py
for usage example. Thanks @sardinationwebview.start(private_mode=True, storage_path=None)
Private mode and persistant storage support in a non-private mode. Private mode is enabled by default.webview.create_window(zoomable=False)
Enable / disable zooming on webpage. Disabled by default.webview.create_window(draggable=False)
Enable / disable dragging of IMG and A elements. Disabled by default.webview.create_confirmation_dialog(title, content)
creates a confirmation (Ok, Cancel) dialog. Thanks @sardination.window.get_cookies()
retrieve all the cookies (including HttpOnly) for the current webpage.webview.create_window(vibancy=False)
Window vibrancy suppport. macOS only. Thanks @CahierX.evaluate_js
performance.Published by r0x0r almost 2 years ago
Released 16/11/2022
Published by r0x0r almost 2 years ago