7
create_setting

yutent edited this page 2023-09-08 19:16:47 +08:00

默认已经配置了比较合适的webkit设置, 一般不需要额外再加设置了。

这是已经配置好的功能列表:

  • 允许页面缓存、包括离线缓存
  • 允许js访问剪切板
  • 支持indexedDB、localStorage、sessionStorage, 以及coookie
  • 支持平滑滚动
  • 允许全屏
  • 媒体播放, 无需用户主动触发点击等行为, 可实现启动自动播放
  • 视频播放不强制全屏
  • 支持 JS 调用 window.open()新开窗口 (0.4.0开始支持)

另外, 除了以上默认配置, 提供了以下5个自定义设置(通过create_setting()创建新的设置, 也可以通过访问webengine实例的get_settings()方法获取当前的设置对象)

  • useragent 修改'webkit的useragent, 默认值为 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.4 Safari/605.1.15 WebEngine/{sdk_serverion}
  • app_name 应用名称 , 会被应用在上面的user_agent中, 代替SDK的名字 【0.7.0新增】
  • app_version 应用版本号, 同上, 代替的是SDK的版本号 【0.7.0新增】
  • 'web_security' 可禁用web security, 禁用之后, 可以不受跨域限制, 可以方便实现一些业务, 如API测试工具、调用其他第三方提供的API等。
  • disable_fullscreen 禁用全屏, 可满足某些业务场景下, 不允许webapp全屏的需求。
  • devtools, 启动开发者控制台, 方便开发过程中进行代码调试
  • mock_devices, 模拟捕获设备的API, 方便开发人员可以在没有真实设备的情况下进行捕获设备相关的功能测试和调试。

    【0.4.0】之后, 合并到devtools中, 不再支持单独设置

注意: 若同时设置useragentapp_name, app_version时,app_name, app_version不会被注入到最终的useragent

from webengine.gtk3 import WebEngine create_setting

web = WebEngine()
setting = create_setting({
  "useragent": "...",
  "app_name": "A_NEW_APP",
  "app_version": "1.0.0",
  "web_security": False,
  "disable_fullscreen": True,
  "devtools": True,
  "mock_devices": True
})

web.use(setting)

# 也可以通过get_settings()获取设置对象, 然后可以任意修改, 该对象的实例方法, 请参考 WebKit2.Settings 文档 
setting = web.get_settings()

WebKit2.Settings 文档直达