pywebview 常用问题分享
文章目录
- 前言
 - 问题描述与方案(待补充)
 - 1、动态设置本地调试目录和打包目录
 - 2、构建后运行程序白屏
 
前言
最近做一个pywebview项目,遇到了一些问题,记录一下,分享给大家,希望能帮助有遇到相似问题的人事。
问题描述与方案(待补充)
1、动态设置本地调试目录和打包目录
- 通过区分开发和生产环境还设置静态资源目录和开启调试
 - 代码示例
 
#静态目录的开发、生产环境设置
if getattr(sys, "frozen", False):
   # 如果是打包后的可执行文件
   base_path = sys._MEIPASS
   # 定义 Vue 构建后的 HTML 文件路径
   html_file_path = os.path.join(base_path, "dist", "index.html")
   if_debug = False
else:
   # 如果是开发环境
   base_path = os.path.dirname(os.path.abspath(__file__))
   # 定义 Vue 构建后的 HTML 文件路径
   html_file_path = os.path.join(base_path, "http://localhost:5173")
   if_debug = True
   webview.create_window(
       title="RPA Client",  # 窗口标题
       url=html_file_path,  # 加载的 URL
   )
   webview.start(debug=ifDebug)
 
2、构建后运行程序白屏
- 错误提示:Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/plain”. Strict MIME type checking is enforced for module scripts per HTML spec.
 - 解决方案:
通过设置js的模块类型,解决js不能正常加载问题,代码示例如下 
import webview
import mimetypes
from gui_api import MainWindowApi
def main():
   """Main"""
   mimetypes.add_type("application/javascript", ".js")
   api = MainWindowApi()
   window = webview.create_window(
       "Character Card Viewer", url="dist/index.html", js_api=api
   )
                