调研avalonia框架2能否使用webView

背景

公司打算用跨平台的方式来使用webView打开网页,活派到我这了,那就直接开始了。

调研avalonia框架

调研环境:

Microsoft Visual Studio Professional 2022 (64 位) 版本 17.14.9 (July 2025)

需要安装.net8.0以上SDK安装包

下载地址https://dotnet.microsoft.com/en-us/download

需要安装vs2022跨平台开发安装(控制面板、更改VS2022安装程序)

需要安装vs2022扩展程序支持avalonia

下载地址https://marketplace.visualstudio.com/items?itemName=AvaloniaTeam.AvaloniaVS

创建项目

1.选择Avalonia C#项目

第二步

选择需要适配的平台,可以选择网页、android、ios等,这里全选了

项目创建成功

资源管理器当中会出现适配不同平台的类库。主程序实际是AvaloniaTest2,本质还是wpf进行跨平台。

存在Avalonia.WebView nuget包

根据说明进行配置

app页面增加webView调用

部署失败

一直提示无法加载源 https://accelerate-nuget-feed.avaloniaui.net/v3/index.json 的服务索引。

而根据官方的文档

https://docs.avaloniaui.net/ru/accelerate/components/webview/quickstart

这里的LINCENSE_KEY没有,直接访问这个https://accelerate-nuget-feed.avaloniaui.net/v3/index.json地址也需要一个账户名密码,目前卡住,无法继续进行。

替代方案:Maui框架

同样支持跨平台安卓部署,且能够直接使用webView控件。手动增加webView代码打开B站

调研https://github.com/OutSystems/WebView 此框架是否适应Avalonia框架

https://github.com/OutSystems/WebView 此框架是否适应Avalonia框架。

将项目源码下载,AvaloniaTest1加载项目WebViewControl.Avalonia源码

其中部分源码实际还需要进行一些修改,并不能直接使用

Android报错

主要报错信息如下:

One or more errors occurred. (Unable to resolve type WebView from namespace clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia Line 16, position 4.) (Unable to resolve type WebView from namespace clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia Line 16, position 4.) (Unable to resolve type WebView from namespace clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia Line 16, position 4.) (Unable to resolve type WebView from namespace clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia Line 16, position 4.) (Unable to resolve type WebView from namespace clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia Line 16, position 4.) (Unable to resolve type WebView from namespace clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia Line 16, position 4.) (Unable to resolve type WebView from namespace clr-namespace:WebViewControl;assembly=WebViewControl.Avalonia Line 16, position 4.) (Unable to resolve suitable regular or attached property Name on type :.{Unknown type} Line 16, position 4.) (Unable to resolve suitable regular or attached property Focusable on type :.{Unknown type} Line 16, position 4.) (Unable to resolve suitable regular or attached property Address on type :.{Unknown type} Line 16, position 4.)

无法识别控件

wpf执行桌面程序

则成功打开网页

可以确定该框架无法支持Android与主页描述一致

不死心继续调查开源框架Avalonia.WebView2

详细文档参考

https://github.com/lostmsu/Avalonia.WebView2/blob/main/README.zh-CN.md

里面提到一个Avalonia.WebView.Sample项目,打开发现

所有的包都是11.0.0版本,而默认创建的avalonia框架是11.3.0版本,尝试降档来使用该控件。

降档成功

代码中增加

打开百度成功

并且模拟器打包的apk可以成功安装。

总结:

虽然最终成功了,但是这个APP就放了一个webView控件再无其他东西,安装包竟然有70MB。。。

 

posted @ 2025-08-08 16:52  扬州小胖  Views(605)  Comments(1)    收藏  举报