pywebview

Build GUI for your Python program with JavaScript, HTML, and CSS

BSD-3-CLAUSE License

Downloads
77.7K
Stars
4.3K
Committers
137

Bot releases are hidden (Show)

pywebview - 5.1 Latest Release

Published by r0x0r 6 months ago

⚡ Features

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

🚀 Improvements

  • Windows Add window shadow with webview.create_window(..., shadow=True). Thanks @yllhwa

🐞 Bug fixes

  • Cocoa Fix showing window
  • QT Fix fetching cookies in private mode
  • QT Fix blank screen in Pop! OS. Thanks @ysfchn.
  • GTK Fix frameless windows having a hard-coded minimum size. Thanks @coffeejunk
pywebview - 5.0.5

Published by r0x0r 8 months ago

🐞 Bug fixes

  • All Prevent infinite recursion in nested JS API #1327
  • CEF Crash due incorrect settings #1330
  • QT WebEnginePage not deleted after window is closed #1328
  • QT Blank screen on certain Linux systems #1325
pywebview - 5.0.4

Published by r0x0r 8 months ago

🐞 Bug fixes

  • All Python 3.7 compatibility
pywebview - 5.0.3

Published by r0x0r 8 months ago

🚀 Improvements

  • QT window position is returned in coordinates excluding the window frame to be in line with provided coordinates.

🐞 Bug fixes

  • EdgeChromium CoreWebView2Settings exception in debug mode. #1323
  • QT Crashing when closing additional windows #525
  • QT DevTools failing to focus on open
pywebview - 5.0.1

Published by r0x0r 8 months ago

⚡ Features

  • Android support. pywebview can now be used on Android devices with help of buildozer in producing APK. #377
  • DOM manipulation, traversal and events. pywebview provides a set of functions for mutating DOM nodes and traversing DOM, as well as you can subscribe to DOM events directly in Python. #1218
  • Application settings 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)`.
}
  • Support for file downloads. To enable file downloads, set webview.settings['ALLOW_DOWNLOADS'] = True. Disabled by default.
  • Full path support for file drag n drop. To get a full path of the dragged file, pywebview introduces 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.

🚀 Improvements

  • All A more powerful JS data serializer capable of handling different data types and detecting circular references #1217
  • All Nested JS API support. See examples/js_api.py for details. Thanks @AlecHaring
  • All 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 error
  • Windows WebView2 control updated to 1.0.2045.28
  • Windows Add SSL support for local HTTP server.
  • GTK Update deprecated code

🐞 Bug fixes

  • Cocoa Suppress secure coding is not enabled for restorable state warning. Thanks @awesomo4000
  • EdgeChromium Background color not available in webview2. Thanks @Vanthys
  • EdgeChromium Multiple focus events on window show. Thanks @yllhwa
  • GTK 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 #1266
  • QT Submenu actions firing incorrectly #1318
pywebview - 4.4.1

Published by r0x0r 12 months ago

🐞 Bug fixes

  • GTK Fallback for WebKit 4.0 if 4.1 not found.
pywebview - 4.4

Published by r0x0r 12 months ago

🐞 Bug fixes

  • Cocoa Window not retaining focus on keystrokes. #1187
  • Cocoa App crashing when closing fullscreen window. #1236
  • Cocoa Video keeps playing after closing window. #1235
  • Cocoa Uploaded file is empty if filename contains a space. #1231
  • Cocoa Return value of confirmation dialog created by window.confirm. #976
  • Windows Fullscreen application disappearing after disconnecting extended display. #1229

🚀 Improvements

  • All Don't start http server for file:// urls. Thanks @glorpen
  • GTK Bump WebKit2 to 4.1. Thanks @starnight
  • Windows Disable swipe navigation #1230
  • Windows Window is changed to fullscreen on the current monitor in a multi-monitor setup.
pywebview - 4.3.3

Published by r0x0r about 1 year ago

🐞 Bug fixes

  • [QT] Fix QT implementation
pywebview - 4.3.2

Published by r0x0r about 1 year ago

🐞 Bug fixes

  • [Winforms] Fix easy_drag from being always enabled.
pywebview - 4.3.1

Published by r0x0r about 1 year ago

🐞 Bug fixes

  • [Cocoa] Add missing maximized implementation
pywebview - 4.3

Published by r0x0r about 1 year ago

⚡ Features

  • [All] webview.create_window(maximized=False) Create a window in a maximized state. Thanks @vsajip
  • [All] webview.create_window(screen=screen_instance) Create a window on a specific monitor, where screen is a screen returned by window.screens. Thanks @louisnw01
  • [All] Window title can be obtained / set via window.title.

🚀 Improvements

  • [All] Window closing event fired after closing confirmation #1178. Thanks @p4bl0-
  • [All] Improve performance of JS API calls by removing the initial delay of 100ms.
  • [GTK] Native JS Bridge. HTTP server based JS bridge is removed.
  • [GTK] Remove support for Webkit older than 2.2

🐞 Bug fixes

  • [All] Easy drag memory leak #1176
  • [Winforms] Easy drag support #1125
  • [Winforms] Incorrect DPI scaling
  • [Winforms] Private mode not working if webview.screens is returned before webview.start #1193
  • [QT] Add no sandbox for arch/manjaro/nixos to avoid white screen problem #890. Thanks @myuanz
  • [GTK] Closing event handlers cancellation. Thanks @p4bl0-
  • [GTK] SEGFAULT on second webview.start() call #1063. Thanks @PercentBoat4164
pywebview - 4.2.2

Published by r0x0r over 1 year ago

  • [All] Fix 'NoneType' object has no attribute 'start_server'. #1159
pywebview - 4.2.1

Published by r0x0r over 1 year ago

🐞 Bug fixes

  • [All] Fix installation.
pywebview - 4.2

Published by r0x0r over 1 year ago

⚡ Features

  • [All] webview.create_window(focus=False) to create a non-focusable window. Thanks @mi4code #1030.

🚀 Improvements

  • [All] Modernization of project infrastructure + typing. Thanks @demberto.
  • [Winforms] Top level menu item support. Thanks @zhengxiaoyao0716.
  • [Winforms] Disable touchpad elastic overscroll. Thanks @firai.

🐞 Bug fixes

  • [Winforms] Unable to load DLL 'WebView2Loader.dll': The specified module could not be found. Thanks @kawana77b #1078
  • [Cocoa] Add missing pip dependency pyobjc-framework-security.
pywebview - 4.1

Published by r0x0r over 1 year ago

Released 02/05/2023

⚡ Features

  • [Cocoa/QT/GTK] SSL support for built-in http server webview.start(ssl=True). Thanks @keredson

🚀 Improvements

  • [All] JS API exceptions are now printed both in Python and Javascript consoles.
  • [All] Hide menu bar when there is no menu. Thanks @Joffreybvn

🐞 Bug fixes

  • [All] Fix bug where http_port was not being forwarded to the actual window #1060. Thanks @robb-brown
  • [All] Switch from tempfile to os.devnull to fix PyInstaller issue. Thanks @simonrob
  • [Cocoa] Fix getting cookies in cocoa. Thanks @eerimoq
  • [Cocoa] Fix exception occurring when main menu for application cannot be obtained.
  • [Windows] A more robust logic for setting user data directory. Thanks @al-eax
  • [Windows] Fix exception when executing a menu function
  • [Windows] Fix the title and message of the confirmation dialog. Thanks @zhengxiaoyao0716
pywebview - 4.0.2

Published by r0x0r over 1 year ago

🚀 Improvements

  • [All] HTTP server is now multithreaded. This should prevent stalled requests. #1025
  • [Windows] 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. #1026

🐞 Bug fixes

  • [All] Fix AttributeError: module 'webview.http' has no attribute 'running' exception occurring when multiple windows are opened. Thanks @YidaozhanYa. #1024
  • [Winforms] Fix on_top not having any effect on Windows. #1036
  • [Winforms] Fix create_window(hidden=True) makes the show() command not work #1050
  • [Windows] Fix pyinstaller compatibility on Windows. Thanks @simonrob #1044
  • [CEF] Fix window.get_cookies() throwing KeyError exception. #1021
  • [Cocoa] Fix non-QWERTY keyboard shortcuts. Thanks @max-uho
  • [QT] Fix web inspector preventing to open. #1028
  • [GTK] Fix "ImportError: Requiring namespace 'Soup' version '2.4', but '3.0' is already loaded" Thanks @YidaozhanYa #1041
pywebview - 4.0.1

Published by r0x0r over 1 year ago

🚀 Improvements

  • [All] Suppress HTTP server logging if not in debug mode.

🐞 Bug fixes

  • [All] Fix HTTP server starting twice with a single window. Thanks @robb-brown.
pywebview - 4.0

Published by r0x0r almost 2 years ago

💔 BREAKING CHANGES

  • [All] Window events are moved into window.events namespace. window.loaded, window.shown etc no longer work.
  • EdgeHTML support is removed.

⚡ Features

  • [All] Local homegrown HTTP server is replaced with bottle.py. Thanks @robb-brown for WSGI support.
  • [All] Native application menu support. See examples/menu.py for usage example. Thanks @sardination
  • [All] webview.start(private_mode=True, storage_path=None) Private mode and persistant storage support in a non-private mode. Private mode is enabled by default.
  • [All] webview.create_window(zoomable=False) Enable / disable zooming on webpage. Disabled by default.
  • [All] webview.create_window(draggable=False) Enable / disable dragging of IMG and A elements. Disabled by default.
  • [All] webview.create_confirmation_dialog(title, content) creates a confirmation (Ok, Cancel) dialog. Thanks @sardination.
  • [All] window.get_cookies() retrieve all the cookies (including HttpOnly) for the current webpage.
  • [macOS] webview.create_window(vibancy=False) Window vibrancy suppport. macOS only. Thanks @CahierX.

🚀 Improvements

  • [All] Local relative URLs (eg. src/index.html) are opened using the built-in http server by default. Support for local URLs is still possible using file:// schema
  • [Cocoa] Disable Ctrl+click context menu. Thanks @ecpost.
  • [EdgeChromium] Improve evaluate_js performance.
  • [GTK] Enable media / audio / WebGL / clipboard related WebKit features

🐞 Bug fixes

  • [Cocoa] Fix passing through keyboard events handled by pywebview. Thanks @ecpost.
  • [GTK] Fix JS bridge maximum return object size limitation. GTK's JS bridge is implemented via HTTP server.
  • [GTK] Fix hanging problem during window closing when JS evaluation is in progress
pywebview - 3.7.2

Published by r0x0r almost 2 years ago

Released 16/11/2022

🐞 Bug fixes

  • [All] Fix missing libraries from the previous release

🚀 Improvements

  • [Windows / Linux] Devtools is automatically opened in debug mode.
  • [EdgeChromium] Browser shortcut keys are disabled by default
pywebview - 3.7.1

Published by r0x0r almost 2 years ago

🐞 Bug fixes

  • [Edge Chromium] Better platform detection

🚀 Improvements

  • [Edge Chromium] ARM64 support