from webview.serving import resolve_url from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html, js_bridge_call from webview.js import alert from webview.js.css import disable_text_select import clr clr.AddReference('System.Windows.Forms') clr.AddReference('System.Collections') clr.AddReference('System.Threading') import System.Windows.Forms as WinForms from System import IntPtr, Int32, Func, Type, Environment, Uri from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF clr.AddReference(interop_dll_path('WebBrowserInterop.dll')) from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx logger = logging.getLogger('pywebview') settings = {} class MSHTML: class JSBridge(IWebBrowserInterop): __namespace__ = 'MSHTML.JSBridge' window = None def call(self, func_name, param, value_id): return js_bridge_call(self.window, func_name, json.loads(param), value_id)
import System.Windows.Forms as WinForms from System import IntPtr, Int32, Func, Type, Environment from System.Threading import Thread, ThreadStart, ApartmentState from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF from webview import OPEN_DIALOG, FOLDER_DIALOG, SAVE_DIALOG, _js_bridge_call from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html from .js import alert from .js.css import disable_text_select from webview.localization import localization from webview.win32_shared import set_ie_mode clr.AddReference(interop_dll_path()) from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx logger = logging.getLogger('pywebview') class BrowserView: instances = {} class JSBridge(IWebBrowserInterop): __namespace__ = 'BrowserView.JSBridge' api = None parent_uid = None def call(self, func_name, param): return _js_bridge_call(self.parent_uid, self.api, func_name, param)
finally: winreg.CloseKey(net_key) is_cef = forced_gui_ == 'cef' is_edge = _is_edge() and forced_gui_ != 'mshtml' if is_cef: from . import cef as CEF IWebBrowserInterop = object logger.debug('Using WinForms / CEF') renderer = 'cef' elif is_edge: clr.AddReference(interop_dll_path('Microsoft.Toolkit.Forms.UI.Controls.WebView.dll')) from Microsoft.Toolkit.Forms.UI.Controls import WebView from System.ComponentModel import ISupportInitialize IWebBrowserInterop = object logger.debug('Using WinForms / EdgeHTML') renderer = 'edgehtml' else: clr.AddReference(interop_dll_path('WebBrowserInterop.dll')) from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx logger.debug('Using WinForms / MSHTML') renderer = 'mshtml' class BrowserView:
from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html, js_bridge_call from webview.js import alert from webview.js.css import disable_text_select import clr clr.AddReference('System.Windows.Forms') clr.AddReference('System.Collections') clr.AddReference('System.Threading') import System.Windows.Forms as WinForms from System import IntPtr, Int32, Func, Type, Environment, Uri from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF clr.AddReference( interop_dll_path('Microsoft.Toolkit.Forms.UI.Controls.WebView.dll')) from Microsoft.Toolkit.Forms.UI.Controls import WebView from System.ComponentModel import ISupportInitialize logger = logging.getLogger('pywebview') class EdgeHTML: def __init__(self, form, window): self.pywebview_window = window self.web_view = WebView() life = ISupportInitialize(self.web_view) life.BeginInit() form.Controls.Add(self.web_view)
from webview.js import alert from webview.js.css import disable_text_select import clr clr.AddReference('System.Windows.Forms') clr.AddReference('System.Collections') clr.AddReference('System.Threading') import System.Windows.Forms as WinForms from System import IntPtr, Int32, String, Action, Func, Type, Environment, Uri from System.Threading.Tasks import Task, TaskScheduler, TaskContinuationOptions from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF archpath = 'x64' if architecture()[0] == '64bit' else 'x86' os.environ['Path'] = interop_dll_path(archpath) + ';' + os.environ['Path'] clr.AddReference(interop_dll_path('Microsoft.Web.WebView2.Core.dll')) clr.AddReference(interop_dll_path('Microsoft.Web.WebView2.WinForms.dll')) from Microsoft.Web.WebView2.WinForms import WebView2, CoreWebView2CreationProperties from Microsoft.Web.WebView2.Core import CoreWebView2Environment logger = logging.getLogger('pywebview') class EdgeChrome: def __init__(self, form, window): self.pywebview_window = window self.web_view = WebView2() props = CoreWebView2CreationProperties() #props.UserDataFolder = os.path.join(os.getcwd(), 'profile') props.UserDataFolder = os.path.join(os.environ['LOCALAPPDATA'],
import System.Windows.Forms as WinForms from System import IntPtr, Int32, Func, Type, Environment from System.Threading import Thread, ThreadStart, ApartmentState from System.Drawing import Size, Point, Icon, Color, ColorTranslator, SizeF from webview import OPEN_DIALOG, FOLDER_DIALOG, SAVE_DIALOG, _js_bridge_call, config from webview.util import parse_api_js, interop_dll_path, parse_file_type, inject_base_uri, default_html from .js import alert from .js.css import disable_text_select from webview.localization import localization from webview.win32_shared import set_ie_mode clr.AddReference(interop_dll_path()) from WebBrowserInterop import IWebBrowserInterop, WebBrowserEx logger = logging.getLogger('pywebview') is_cef = config.gui == 'cef' if is_cef: from . import cef as CEF class BrowserView: instances = {} class JSBridge(IWebBrowserInterop): __namespace__ = 'BrowserView.JSBridge'