{"id":32300762,"url":"https://github.com/hlwhl/webview_cef","last_synced_at":"2026-02-19T21:53:12.043Z","repository":{"id":40990444,"uuid":"496130989","full_name":"hlwhl/webview_cef","owner":"hlwhl","description":"WebView for Flutter Desktop Apps using CEF(Chromium Embedded Framework) [Work in Progress]","archived":false,"fork":false,"pushed_at":"2025-08-28T08:51:22.000Z","size":1363,"stargazers_count":213,"open_issues_count":76,"forks_count":64,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-08-28T15:45:38.141Z","etag":null,"topics":["cef","flutter","flutter-desktop","flutter-macos","flutter-plugin","flutter-windows","macos","webview","windows"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hlwhl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-05-25T07:42:23.000Z","updated_at":"2025-08-15T03:08:02.000Z","dependencies_parsed_at":"2023-11-20T06:27:08.215Z","dependency_job_id":"6cd034b4-c8cb-43db-9f59-32f5dc047f12","html_url":"https://github.com/hlwhl/webview_cef","commit_stats":{"total_commits":98,"total_committers":3,"mean_commits":"32.666666666666664","dds":0.08163265306122447,"last_synced_commit":"b9fd9d40bf41970303b73c675e91e8810405a385"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/hlwhl/webview_cef","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlwhl%2Fwebview_cef","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlwhl%2Fwebview_cef/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlwhl%2Fwebview_cef/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlwhl%2Fwebview_cef/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hlwhl","download_url":"https://codeload.github.com/hlwhl/webview_cef/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hlwhl%2Fwebview_cef/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29634417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-19T18:02:07.722Z","status":"ssl_error","status_checked_at":"2026-02-19T18:01:46.144Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cef","flutter","flutter-desktop","flutter-macos","flutter-plugin","flutter-windows","macos","webview","windows"],"created_at":"2025-10-23T05:24:57.779Z","updated_at":"2026-02-19T21:53:12.039Z","avatar_url":"https://github.com/hlwhl.png","language":"C","readme":"# WebView CEF\n\n\u003ca href=\"https://pub.dev/packages/webview_cef\"\u003e\u003cimg src=\"https://img.shields.io/pub/likes/webview_cef?logo=dart\" alt=\"Pub.dev likes\"/\u003e\u003c/a\u003e \u003ca href=\"https://pub.dev/packages/webview_cef\" alt=\"Pub.dev popularity\"\u003e\u003cimg src=\"https://img.shields.io/pub/popularity/webview_cef?logo=dart\"/\u003e\u003c/a\u003e \u003ca href=\"https://pub.dev/packages/webview_cef\"\u003e\u003cimg src=\"https://img.shields.io/pub/points/webview_cef?logo=dart\" alt=\"Pub.dev points\"/\u003e\u003c/a\u003e \u003ca href=\"https://pub.dev/packages/webview_cef\"\u003e\u003cimg src=\"https://img.shields.io/pub/v/webview_cef.svg\" alt=\"latest version\"/\u003e\u003c/a\u003e \u003ca href=\"https://pub.dev/packages/webview_cef\"\u003e\u003cimg src=\"https://img.shields.io/badge/macOS%20%7C%20Windows%20%7C%20Linux-blue?logo=flutter\" alt=\"Platform\"/\u003e\u003c/a\u003e\n\nFlutter Desktop WebView backed by CEF (Chromium Embedded Framework).\nThis project is under heavy development, and the APIs are not stable yet.\n\n## Index\n\n- [Supported OSs](#supported-oss)\n- [Setting Up](#setting-up)\n  - [Windows \u003cimg align=\"center\" src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Windows_logo_-_2021.svg/1200px-Windows_logo_-_2021.svg.png\" width=\"12\"\u003e](#windows)\n  - [macOS \u003cimg align=\"center\" src=\"https://seeklogo.com/images/A/apple-logo-52C416BDDD-seeklogo.com.png\" width=\"12\"\u003e](#macos)\n  - [Linux \u003cimg align=\"center\" src=\"https://1000logos.net/wp-content/uploads/2017/03/LINUX-LOGO.png\" width=\"14\"\u003e](#linux)\n- [TODOs](#todos)\n- [Demo](#demo)\n  - [Screenshots](#screenshots)\n- [Credits](#credits)\n\n## Supported OSs\n\n- [x] Windows 7+ \u003cimg align=\"center\" src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Windows_logo_-_2021.svg/1200px-Windows_logo_-_2021.svg.png\" width=\"12\"\u003e\n- [x] macOS 10.12+ \u003cimg align=\"center\" src=\"https://seeklogo.com/images/A/apple-logo-52C416BDDD-seeklogo.com.png\" width=\"12\"\u003e\n- [x] Linux (x64 and arm64) \u003cimg align=\"center\" src=\"https://1000logos.net/wp-content/uploads/2017/03/LINUX-LOGO.png\" width=\"14\"\u003e\n\n## Setting Up\n\n### Windows \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Windows_logo_-_2021.svg/1200px-Windows_logo_-_2021.svg.png\" width=\"16\"\u003e\n\nInside your application folder, you need to add some lines in your `windows\\runner\\main.cpp`.（Because of Chromium multi process architecture, and IME support, and also flutter rquires invoke method channel on flutter engine thread)\n\n```cpp\n//Introduce the source code of this plugin into your own project\n#include \"webview_cef/webview_cef_plugin_c_api.h\"\n\nint APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev,\n                      _In_ wchar_t *command_line, _In_ int show_command) {\n  //start cef deamon processes. MUST CALL FIRST\n  int exit_code = initCEFProcesses(instance);\n  if (exit_code \u003e= 0) {\n    return exit_code;\n  }\n```\n\n```cpp\n  ::MSG msg;\n  while (::GetMessage(\u0026msg, nullptr, 0, 0)) {\n    ::TranslateMessage(\u0026msg);\n    ::DispatchMessage(\u0026msg);\n    \n    //add this line to enable cef keybord input, and enable to post messages to flutter engine thread from cef message loop thread.\n    handleWndProcForCEF(msg.hwnd, msg.message, msg.wParam, msg.lParam);\n  }\n```\n\nWhen building the project for the first time, a prebuilt cef bin package (200MB, link in release) will be downloaded automatically, so you may wait for a longer time if you are building the project for the first time.\n\n### macOS \u003cimg src=\"https://seeklogo.com/images/A/apple-logo-52C416BDDD-seeklogo.com.png\" width=\"15\"\u003e\n\nTo use the plugin in macOS, you'll need to clone the repository onto your project location, prefereably inside a `packages/` folder on the root of your project. \nUpdate your `pubspec.yaml` file to accomodate the change.\n```\n...\n\ndependencies:\n  # Webview\n  webview_cef:\n    path: ./packages/webview_cef     # Or wherever you cloned the repo\n    \n    \n...\n```\n\nThen follow the below steps inside the `macos/` folder \u003cb\u003eof the cloned repository\u003c/b\u003e.\u003cbr/\u003e\u003cbr/\u003e\n\n1. Download prebuilt cef bundles from [arm64](https://github.com/hlwhl/webview_cef/releases/download/prebuilt_cef_bin_mac_arm64/CEFbins-mac103.0.12-arm64.zip) or [intel](https://github.com/hlwhl/webview_cef/releases/download/prebuilt_cef_bin_mac_intel/mac103.0.12-Intel.zip) depends on your target machine arch.\n\n\u003e Note: You can also download [universal binary](https://github.com/hlwhl/webview_cef/releases/download/prebuilt_cef_bin_mac_universal/mac103.0.12-universal.zip) for build an mac-universal app if you want to build an mac universal app. See [#30](/../../issues/30). Thanks to [@okiabrian123](https://github.com/okiabrian123).\n\n2. Unzip the archive and put all files into `macos/third/cef`. (Inside the cloned repository, not your project)\n\n3. Run the example app.\n\n\u003cbr/\u003e\u003cbr/\u003e\n\n**`[HELP WANTED!]`** Finding a more elegant way to distribute the prebuilt package.\n\n\u003e Note: Currently the project has not been enabled with multi process support due to debug convenience. If you want to enable multi process support, you may want to enable multi process mode by changing the implementation and build your own helper bundle. (Finding a more elegant way in the future.)\n\n### Linux \u003cimg src=\"https://1000logos.net/wp-content/uploads/2017/03/LINUX-LOGO.png\" width=\"16\"\u003e\n\nFor Linux, just adding `webview_cef` to your `pubspec.yaml` (e.g. by running `flutter pub add webview_cef`) does the job.\n\n## TODOs\n\n\u003e Pull requests are welcome.\n\n- [x] Windows support\n- [x] macOS support\n- [x] Linux support\n- [x] Multi instance support\n- [x] IME support(Only support Third party IME on Linux and Windows, Microsoft IME on Windows, and only tested Chinese input methods)\n- [x] Mouse events support\n- [x] JS bridge support\n- [x] Cookie manipulation support\n- [x] Release to pub\n- [x] Trackpad support\n- [ ] Better macOS binary distribution\n- [ ] Easier way to integrate macOS helper bundles(multi process)\n- [x] devTools support\n\n## Demo\n\nThis demo is a simple webview app that can be used to test the `webview_cef` plugin.\n\n\u003ckbd\u003e![demo_compressed](https://user-images.githubusercontent.com/7610615/190432410-c53ef1c4-33c2-461b-af29-b0ecab983579.gif)\u003c/kbd\u003e\n\n### Screenshots\n\n| Windows \u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Windows_logo_-_2021.svg/1200px-Windows_logo_-_2021.svg.png\" width=\"12\"\u003e | macOS \u003cimg src=\"https://seeklogo.com/images/A/apple-logo-52C416BDDD-seeklogo.com.png\" width=\"11\"\u003e | Linux \u003cimg src=\"https://1000logos.net/wp-content/uploads/2017/03/LINUX-LOGO.png\" width=\"12\"\u003e |\n| --- | --- | --- |\n| \u003cimg src=\"https://user-images.githubusercontent.com/7610615/190431027-6824fac1-015d-4091-b034-dd58f79adbcb.png\" width=\"400\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/7610615/190911381-db88cf33-70a2-4abc-9916-e563e54eb3f9.png\" width=\"400\" /\u003e | \u003cimg src =\"https://github.com/hlwhl/webview_cef/assets/49640121/50a4c2f6-1f24-4d10-9913-ad274d76cf3f\" width=\"400\" /\u003e |\n| \u003cimg src=\"https://user-images.githubusercontent.com/7610615/190431037-62ba0ea7-f7d1-4fca-8ce1-596a0a508f93.png\" width=\"400\" /\u003e | \u003cimg src=\"https://user-images.githubusercontent.com/7610615/190911410-bd01e912-5482-4f9e-9dae-858874e5aaed.png\" width=\"400\" /\u003e | \u003cimg src=\"https://github.com/hlwhl/webview_cef/assets/49640121/10a693d5-4ee0-4389-a1e8-1b0355f7c0a6\" width=\"400\" /\u003e |\n| \u003cimg src=\"https://user-images.githubusercontent.com/7610615/195815041-b9ec4da8-560f-4257-9303-f03a016da5c6.png\" width=\"400\" /\u003e | \u003cimg width=\"400\" alt=\"image\" src=\"https://user-images.githubusercontent.com/7610615/195818746-e5adf0ef-dc8c-48ad-9b11-e552ca65b08a.png\"\u003e | \u003cimg src=\"https://github.com/hlwhl/webview_cef/assets/49640121/3a81f576-b555-4e16-8609-b3c7d6eec869\" width=\"400\" /\u003e |\n\n## Credits\n\nThis project is inspired from [**`flutter_webview_windows`**](https://github.com/jnschulze/flutter-webview-windows).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhlwhl%2Fwebview_cef","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhlwhl%2Fwebview_cef","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhlwhl%2Fwebview_cef/lists"}