{"id":20289918,"url":"https://github.com/sahil-pixel/webview4kivy","last_synced_at":"2026-05-02T08:32:27.714Z","repository":{"id":262637535,"uuid":"887879897","full_name":"Sahil-pixel/Webview4Kivy","owner":"Sahil-pixel","description":"Android Webview Implementation using OpenGL texture rendering for Kivy ","archived":false,"fork":false,"pushed_at":"2024-11-13T13:13:17.000Z","size":17754,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T04:42:01.354Z","etag":null,"topics":["android","kivy","kivymd","python","webview"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sahil-pixel.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"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}},"created_at":"2024-11-13T12:52:20.000Z","updated_at":"2024-11-13T19:45:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"1061a62b-aedb-46aa-89de-3d2b1f1414a8","html_url":"https://github.com/Sahil-pixel/Webview4Kivy","commit_stats":null,"previous_names":["sahil-pixel/webview4kivy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil-pixel%2FWebview4Kivy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil-pixel%2FWebview4Kivy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil-pixel%2FWebview4Kivy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sahil-pixel%2FWebview4Kivy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sahil-pixel","download_url":"https://codeload.github.com/Sahil-pixel/Webview4Kivy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241787487,"owners_count":20020099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["android","kivy","kivymd","python","webview"],"created_at":"2024-11-14T15:05:29.904Z","updated_at":"2026-05-02T08:32:27.661Z","avatar_url":"https://github.com/Sahil-pixel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Android Webview Implementation using OpenGL texture rendering for Kivy \n#### Description\nThis Webview for Android. Which is Kivy Widget not an Overlay. This can be use to render web pages or Katex (Latex Things).\n\n#### Problems  \n- This Webview is still now limited. We can not watch DRM Protected Contents.\n- Android Keyboard is not showing .\n\n#### Performance on the physical device [Youtube Video](https://youtu.be/etc5M0DvX-A?si=STmBrpc8NQXKCpEo).\n\n#### Example Code\n```\n#main.py \nfrom kivy.app import App\nfrom kivy.uix.label import Label\nfrom kivy.uix.floatlayout import FloatLayout\nfrom kivy.utils import platform\nfrom kivy.core.window import Window\nfrom kivy.clock import Clock,mainthread\n\nif platform=='android':\n\t#from android.storage import app_storage_path\n\tfrom w4k.webview4kivy import GLWebView\n\nclass MyLayout(FloatLayout):\n\tdef __init__(self,**kwargs):\n\t\tsuper().__init__(**kwargs)\n\t\tWindow.bind(on_keyboard=self.Android_back_click)\n\n\tdef _start(self,):\n\t\tself.ids.gw.connect_webview()\n\tdef _stop(self):\n\t\tself.ids.gw.disconnect_webview()\n\n\tdef Android_back_click(self,window,key,*largs):\n\t\tif key == 27:\n\t\t\tprint('back')\n\t\t\tself.ids.gw.go_back()\n\t\t\treturn True\n\nclass MyApp(App):\n\tdef build(self):\n\t\tif platform=='android':pass\n\t\t\t#from android_webview import immersive_mode\n\t\t\t#immersive_mode(status='enable')\n\t\treturn MyLayout()\n\t\n\t\nif __name__==\"__main__\":\n\tMyApp().run()\n\n\n#myapp.kv\n\u003cMyLayout\u003e:\n\tcanvas.before:\n\t\tColor:\n\t\t\trgba:[1,1,1,1]\n\t\tRectangle:\n\t\t\tpos:self.pos\n\t\t\tsize:self.size\n\tTextInput:\n\t\tid:ti\n\n\t\tpos_hint: {'center_x': 0.5,'y':0.92}\n\t\tsize_hint:0.8,None\n\t\theight:dp(50)\n\t\thint_text:'Enter Url'\n\n\n\tGLWebView:\n\t\turl:'https://google.com/'\n\t\tenable_javascript:True\n\t\tupdate_fps:30\n\t\tsize_hint: (None, None)\n\t\tsize:900,1600\n\t\tpos:100,400\n\t\tid:gw\n\t\t\n\n\n\t\t\n\tButton:\n\t\tpos_hint: {'center_x': 0.2,'y':0.05}\n\t\tsize_hint: (None, None)\n\t\tsize:dp(100),dp(50)\n\t\ttext: 'start update'\n\t\ton_release:root._start()\n\tButton:\n\t\tpos_hint: {'center_x': 0.5,'y':0.05}\n\t\tsize_hint: (None,None)\n\t\tsize:dp(100),dp(50)\n\t\ttext:'load url'\n\t\ton_release:gw.load_url(ti.text)\n\t\n\tButton:\n\t\tpos_hint: {'x': 0.7,'y':0.05}\n\t\tsize_hint: (None, None)\n\t\tsize:dp(100),dp(50)\n\t\ttext: 'stop update'\n\t\ton_release:root._stop()\n\t\n\n\t\n\n``` ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahil-pixel%2Fwebview4kivy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsahil-pixel%2Fwebview4kivy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsahil-pixel%2Fwebview4kivy/lists"}