我可以调试Xamarin.Forms WebView中页面加载时执行的JavaScript逻辑吗?

我可以调试Xamarin.Forms WebView中页面加载时执行的JavaScript逻辑吗?,javascript,xamarin,webview,remote-debugging,dynamic-forms,Javascript,Xamarin,Webview,Remote Debugging,Dynamic Forms,我知道WebView中的JavaScript可以使用Chrome的调试器工具进行调试,如下所述:。这有时对我来说确实有用(虽然它是间歇性的——通常当我单击inspect时出现的DevTools窗口是空白的,其他时候它会显示我的js和屏幕,但是断点似乎不会被击中,即使当我单击应该执行代码的东西时,等等) 然而,当我在我的应用程序中导航到另一个页面时,dev-tools连接将丢失,我必须再次进入Chrome以访问chrome://inspect/#devices,等待新页面出现,然后单击“检查…”。

我知道WebView中的JavaScript可以使用Chrome的调试器工具进行调试,如下所述:。这有时对我来说确实有用(虽然它是间歇性的——通常当我单击inspect时出现的DevTools窗口是空白的,其他时候它会显示我的js和屏幕,但是断点似乎不会被击中,即使当我单击应该执行代码的东西时,等等)

然而,当我在我的应用程序中导航到另一个页面时,dev-tools连接将丢失,我必须再次进入Chrome以访问chrome://inspect/#devices,等待新页面出现,然后单击“检查…”。。。此时页面已经完成加载,我还无法通过加载后立即运行的JavaScript代码进行调试。在我们的例子中,该代码是从服务器端组件调用的,该组件将动态构建的HTML和JavaScript内容加载到WebView中,因此我尝试在调用JavaScript之前中断服务器端代码,但此时,DevTools窗口总是加载为空,因此无法帮助我进行调试。同样的问题也适用于在$(document).ready上执行的任何逻辑

我发现解决此逻辑问题的最佳方法是调用Xamarin服务器端代码,将字符串变量作为参数传递(基本上是编写Console.Log语句的更痛苦版本)

我还尝试了实际的console.log语句,我在VisualStudio的工具->Android->设备日志中查找了这些语句,但由于某种原因,很久以前我只使用过一次——通常,这些语句不会出现在那里(我不知道为什么)。我也很想听听你对此的想法。。。但我最想了解的是,在这种体系结构中,是否有某种方法可以获得一流的调试体验,在这种方法中,我可以逐行查看代码,查看变量内容,等等

我还探讨了将我们的JavaScript转换为MobileBlazorBindings的可能性——Blazor代码似乎可以在VisualStudio中调试,但该项目是实验性的,听起来微软还没有决定是否要开始支持它,我们必须重写JavaScript代码,这样如果我们想继续像目前那样与web应用程序共享逻辑,我们就必须在web应用程序中对其进行更改,并且我们将在应用程序和JavaScript之间添加一层抽象,最终仍将运行JavaScript来执行逻辑

我不愿意退出Xamarin生态系统,也不确定如果退出,应该选择哪个框架,但我正在努力寻找替代方案。我们的企业用户依赖于具有非常可配置的表单,与满足其独特的业务需求相比,他们通常不太关心性能和有吸引力的UI。如果没有动态生成的表单的灵活性,并且具有动态客户端(最好是在使用表单期间执行的JavaScript逻辑),我目前看不到任何方法可以满足用户的各种需求

有没有任何方法可以使用任何开发工具,无论是在Chrome、Edge、Visual Studio还是其他地方,来获得我所寻找的在Web视图中页面加载后执行的JavaScript的真正调试体验

非常感谢

尝试使用QuokkaJS