[.NET 9] BlazorWebView 无法在较旧的 Android 设备上加载, 附临时解决方法

BlazorWebView 无法在较旧的 Android 设备上加载Uncaught SyntaxError: Unexpected token .

.NET 9 低于 v17 的 iOS 版本,IOS 16(2022年9月)、安卓API 31(2021年10月)上的 blazor.webview.js 出现意外语法错误

参考链接

https://github.com/dotnet/aspnetcore/issues/53699

https://github.com/dotnet/maui/issues/24278

生成的 JS 文件blazor.webview.js包含 JS 代码,除非它们更新其 WebView,否则这些代码在旧版 Android 系统上无效。

加载 BlazorWebView 的内容时立即发生此错误:Uncaught SyntaxError: Unexpected token .

并发生在文件中的这行 JS 上:

复制代码
    function l(e) {
        const t = a.get(e);
        return t?.browserEventName || e   // <------------
    }

在这些较旧的 Android 模拟器rom上,您可以更新 System WebView 以获取较新的版本,这似乎可以解决问题。

供将来参考:如果我们决定在较旧的 Android/Chrome/WebView 上再次运行此功能,那么我们还需要重新启用在引入此中断时已禁用的一些测试。我们将 Android API 28、29、30 添加到我们在 dotnet/maui 存储库中为 BlazorWebView 测试的 API 级别排除列表中。在此处查看更改: dotnet/maui@ 9c03adc #diff-d2d1c388a0fb3196dbfcdab96421bc88336637a3d44480c96717f92d000facaeL155-R155

复制代码
<!          androidApiLevelsExclude: [ 27, 26, 25, 24, 23, 22, 21 ] # BlazorWebView requires a recent version of Chrome
!>          androidApiLevelsExclude: [ 30, 29, 28, 27, 26, 25, 24, 23, 22, 21 ] # BlazorWebView requires a recent version of Chrome
                                       ^^^^^^^^^^^^

我们相信大多数设备会自动更新到最新的 webview,因此我们不愿意做出改变来适应旧的 JavaScript 运行时。

唯一的挑战是@danroth27即使是全新的工业 Android 设备也经常运行较旧的 Android 版本。我来这里只是因为我有一套 Android 10 (v29) 条码扫描器,并且我尝试更新到 .NET 9。这是否意味着 .NET 8 对我来说是终点了?


临时方案

自己构建 blazor.webassembly.js

https://github.com/Yu-Core/SwashbucklerDiary/issues/79?wt.mc_id=DT-MVP-5005078

针对旧版 Android 设备上 Blazor Hybrid 的解决方法

https://github.com/dotnet/maui/discussions/27327?wt.mc_id=DT-MVP-5005078

相关推荐
2501_915909061 小时前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
狗凯之家源码网2 小时前
AI 步数修改提交系统源码应用场景与落地指南
android·数据库·人工智能·运动步数
ZHOUPUYU2 小时前
PHP 9.0 前瞻:下一代 PHP 会带来哪些新功能?
android·开发语言·php
JMchen2 小时前
性能优化——让Native代码飞起来
android·c++·性能优化
ZHOUPUYU3 小时前
PHP 8.2 的核心高级特性,包括只读类、类型系统增强
android·性能优化·php
ZHOUPUYU3 小时前
PHP 8.0 高级技术实战:从新特性到性能优化
android·性能优化·php
不爱说话郭德纲3 小时前
从“点点点”到一键出包:我把 uni-app x Android 离线打包做成了脚本
android·前端·uni-app
事圆则缓4 小时前
Android 崩溃优化与应用稳定性全解析:Crash、ANR、OOM 到线上治理
android
ZHOUPUYU4 小时前
PHP 高级技术实战:从原理到高并发架构落地
android·性能优化·php
stevenzqzq4 小时前
mvi的理解
android·compose