更新 2(2024 年 XNUMX 月):基于 Chromium 的浏览器中 WebSQL 被删除的问题已在以下版本中得到解决 Mendix:
- Mendix 9.24.18
- Mendix 10.6.6
- Mendix 10.9.0
使用这些或更新版本构建的离线优先渐进式 Web 应用 Mendix 不再使用 WebSQL 存储离线数据。用户首次打开更新后的应用时,离线数据库会自动迁移。为避免数据丢失,请确保在用户的浏览器采用 Chromium 124 时最终删除 WebSQL 之前进行迁移。
更新(2024 年 124 月):Chromium 团队已宣布,版本 16 将不再支持使用 Origin Trial 的 WebSQL,该版本预计将于 XNUMX 月 XNUMX 日发布。这比最初宣布的时间早了一个多月。好消息是,我们正在最终确定 Mendix 放弃 WebSQL 并计划于本月发布。为准备 Mendix 离线优先的 PWA,请将其更新至最新版本 Mendix 现在升级到 9.24 或 10.6。一旦我们宣布发布修复程序,请将应用程序更新到该版本并发布。这样,最终更新很可能是无缝的,这意味着不需要手动调整。对于您的用户也是如此:修复程序将自动应用,所有离线数据都将被迁移。只需确保您的用户在更新浏览器之前访问该应用程序即可。
Chromium 是一款开源网络浏览器,被多种流行的网络浏览器使用,包括 Google Chrome、Microsoft Edge 和 Android 操作系统的默认网络浏览器。 这个博文维护 Chromium 的团队宣布,他们将在 119 月 31 日发布的 Chromium 31 中放弃对 WebSQL 的支持。上述浏览器的未来版本在更新到该版本的 Chromium 后将立即采用此更改。虽然 Chrome 和 Edge 经常更新,但 Android 网络浏览器通常仅在更新操作系统时才更新。这意味着,只有当设备更新到 XNUMX 月 XNUMX 日之后发布的 Android 版本时,才会应用此更改。
Mendix 支持使用离线 PWA 导航配置文件之一构建基于 Web 的离线优先应用。这些应用在后台使用 WebSQL 来存储与设备同步并可供离线使用的所有对象。因此,一旦用户的 Web 浏览器更新到 Chromium 119,这些应用将不再工作。使用离线优先应用和原生应用构建的混合应用 Mendix 不受影响。
扩展对 WebSQL 的支持
作为第一项措施,如果您的应用是通过 Chrome 或 Edge 使用的,我们建议扩展对 WebSQL 的支持。如果您的应用仅通过 Android Web 浏览器访问,则不需要这样做。要实施此措施,需要两个步骤:
- 注册 Origin 试用版“WebSQL”并接收试用令牌。
- 向托管的 Web 服务器添加自定义标头 Mendix 应用程序。
我们在下面详细解释这些步骤。
Origin 试用注册
Origin 试用版由 Google 和 Microsoft 管理。它们允许开发人员激活新功能或请求对基于 Chromium 的浏览器中已删除的功能提供扩展支持。请按照以下说明向 Google 注册 Origin 试用版:
- 您需要一个 Google 帐户才能注册令牌。如果您没有,请创建一个帐户 开始.
- 访问 Origin 试用注册网站 从 Chrome 并使用您的 Google 帐户登录。
- 找到 WebSQL 的试用版并单击注册。
- 填写你的离线 PWA 在 Web Origin 下运行的环境的 URL。
- 不要选择“第三方匹配”或“我需要一个令牌来匹配所有子域”。
- 选择您应用程序每天的预期使用量。
- 选中底部的四个复选框。
- 单击注册。
- 重新部署应用程序并启动环境以使更改生效
也有可能 注册 Microsoft 的 Origin 试用版。没有必要同时执行这两项操作(任一令牌都可以在 Chrome 和 Edge 网络浏览器中使用)。
Web 服务器配置
要启用 Origin Trial 并扩展对 WebSQL 的支持,您必须将上面获得的令牌作为自定义标头添加到提供以下静态内容的 Web 服务器: Mendix 应用程序。
Origin-Trial: YOUR_TOKEN
以下是 Mendix 云、NGINX 和 Microsoft IIS。
Mendix 云
- 访问 Mendix 门户网站 并打开您的应用程序。
- 从左侧导航中选择环境。
- 单击您要启用 Origin Trial 的环境的“详细信息”。
- 从顶部的标签栏中选择网络。
- 单击 HTTP 标头部分中的添加。
- 从我们的数据库中通过 UL Prospector 平台选择
Origin-Trial作为列表的标题。 - 在值字段中输入您的试用令牌。
- 单击“保存”。
- 重新部署环境以使更改生效。重新启动是不够的,会导致错误。
Mendix CloudFoundry Buildpack 和 Docker Mendix 构建包
如报名参加 Mendix CloudFoundry 构建包 和 Docker Mendix 构建包,我们有一个类似的更新,如 Mendix 云门户计划于 26 月 XNUMX 日更新。
本次更新后,您可以通过以下方式启用 Origin 试用 设置 HTTP 响应标头 使用此命令:
cf set-env <YOUR_APP> HTTP_RESPONSE_HEADERS '{"Origin-Trial": "YOUR_TOKEN"}'
NGINX
添加 add_header Origin-Trial "YOUR_TOKEN"; 到 Mendix 客户端文件被提供(替换 YOUR_TOKEN 使用上面获取到的 token)。下面是一个完整的例子:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
add_header Origin-Trial "YOUR_TOKEN";
try_files $uri $uri/ =404;
}
}
Microsoft IIS
关注 本指南 为网站添加自定义标头,为 Mendix 客户端文件。将名称设置为 Origin-Trial 以及试用令牌的值。然后重新启动 Web 服务器。
验证令牌
您可以在 Chrome 和 Edge 提供的开发人员工具中检查令牌是否被接受以及 WebSQL 是否仍然可用:
- 在 Chrome 或 Edge 中打开您的离线优先 PWA。
- 打开开发人员工具(按 F12)。
- 选择应用程序选项卡。
- 在左侧列表中,选择“Frames”下的“top”。
- 验证 WebSQL 是否列在 Origin Trials 下。
Outlook
我们正在努力用 Chromium 团队建议的替代解决方案替换 WebSQL。此解决方案将在不久的将来发布 Mendix 9.24和 Mendix 10. 完成后,我们将在发行说明中通知您。
一旦解决方案发布并且您的离线优先 PWA 迁移到该版本,它就不再依赖 WebSQL 来存储离线数据。这意味着不再需要 WebSQL 源试用,您可以删除令牌。