Uno.Lottie WebAssembly 中未捕获的类型 JavaScript 错误

Posted

技术标签:

【中文标题】Uno.Lottie WebAssembly 中未捕获的类型 JavaScript 错误【英文标题】:Uncaught Type JavaScript Error In Uno.Lottie WebAssembly 【发布时间】:2020-09-13 17:44:30 【问题描述】:

我的页面上有一个用于玩 Lottie 的 AnimatedVisualPlayer:

<winui:AnimatedVisualPlayer
    x:Name="player"
    AutoPlay="true" Width="150" Height ="150" PlaybackRate="1.5">

    <lottie:LottieVisualSource
        UriSource="ms-appx:///Lottie/waiter.json" />
</winui:AnimatedVisualPlayer>

我安装了这些软件包:

Microsoft.Toolkit.Uwp.UI.Lottie(用于 LottieVisualSource) Microsoft.UI.Xaml(用于 AnimatedVisualPlayer) Uno.UI.Lottie(用于 LottieVisualSource) Uno.UI(用于 AnimatedVisualPlayer)

我也这样做了:

在 WASM、ios 和 macOS 上,您可以将 Lottie .json 文件直接放在 共享项目的文件夹(例如“Lottie/myanimation.json”) 并将其 Build 操作设置为 Content。

UWP 可以无缝玩 Lottie:

但是,WASM 无法播放 Lottie 并出现此错误:

Nuget 包版本:

Nuget 包:

软件包版本:

Uno.UI.RemoteControl 2.4.0 Newtonsoft.Json 12.0.3 Uno.UI.Lottie 2.4.0 Uno.Wasm.Bootstrap 1.2.0 Uno.Wasm.Bootstrap.DevServer 1.2.0 ACM_Search_AdminApps.Shared 1.1.0 Microsoft.Extensions.Logging.Filter 1.1.2 Microsoft.Extensions.Logging.Con... 1.1.1 NETStandard.Library 2.0.3 Uno.UI 2.4.0 ACM_Search_AdminApps.Shared 1.1.0 Microsoft.NETCore.UniversalWindo... 6.2.10 Microsoft.Extensions.Logging.Con... 1.1.1 Microsoft.Extensions.Logging.Filter 1.1.2 Microsoft.Toolkit.Uwp.UI.Lottie 6.0.0 Microsoft.UI.Xaml 2.4.2 Newtonsoft.Json 12.0.3 Uno.Core 2.0.0 Microsoft.Toolkit.Uwp.UI.Lottie 6.0.0

我该如何解决这个问题?谢谢。

【问题讨论】:

您似乎发现了一个错误:-)。让我站在我这边试试。你有可以分享的重现代码吗? 当然。我通过 GitHub 协作邀请发送了一份副本。 @CarldeBilly 错误:“类型错误:无法读取未定义的属性'动画'”执行 javascript:“Uno.UI.Lottie.pause(403458);” AND dotnet.js:1 错误 #1 "SyntaxError: Unexpected token ''" 执行 javascript: "Uno.UI.Lottie.setAnimationProperties(elementId:282194,jsonPath:"/Lottie/waiter.json",autoplay:true,拉伸:“统一”,速率:1,5);“ .也许一点“”会导致问题@carldebilly? 我现在正在检查。感谢您的复制! 【参考方案1】:

这是 Uno-Wasm 的 Lottie 插件中的一个错误,原因是您使用的是 PlaybackRate,并且您在非英语环境中运行,并且在文化中使用小数点序列化逗号而不是点。

This PR #3257 应该可以解决问题。

更新:此 PR 已合并,修复将在 Uno v3.0.0-dev.135 中提供。

【讨论】:

是的。我可以确认,删除播放速率后它正在工作。

以上是关于Uno.Lottie WebAssembly 中未捕获的类型 JavaScript 错误的主要内容,如果未能解决你的问题,请参考以下文章

《WebAssembly 权威指南》WebAssembly 入门

WebAssembly 系列WebAssembly 工作原理

探索WebAssembly实现iOS热修复/第一篇/WebAssembly快速上手

《WebAssembly 权威指南》WebAssembly 简介

WebAssembly 入门

10分钟入门WebAssembly