.NET MAUI进行UDP通信(二)

上篇文章有写过一个简单的demo,本次对项目进行进一步的扩展,添加tabbar功能。

1.修改AppShell.xaml文件,如下所示:

csharp 复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
    x:Class="mauiDemo.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:mauiDemo"
    xmlns:minePage ="clr-namespace:mauiDemo.Page"
    Shell.FlyoutBehavior="Disabled"
    Title="mauiDemo">

    <!--<ShellContent
        Title="Home"
        ContentTemplate="{DataTemplate local:MainPage}"
        Route="MainPage" />-->

    <TabBar>
        <ShellContent Title="Home" 
                      ContentTemplate="{DataTemplate minePage:Mine}"
                      Route="Page/Mine">
            <!--<ContentPage>
                <StackLayout>
                    <Label Text="Welcome to the Home Page"
                           VerticalOptions="CenterAndExpand" 
                           HorizontalOptions="CenterAndExpand" />
                </StackLayout>
            </ContentPage>-->
        </ShellContent>
        <ShellContent Title="Search">
            <ContentPage>
                <StackLayout>
                    <Label Text="Search Page"
                           VerticalOptions="CenterAndExpand" 
                           HorizontalOptions="CenterAndExpand" />
                </StackLayout>
            </ContentPage>
        </ShellContent>
        <ShellContent Title="Settings">
            <ContentPage>
                <StackLayout>
                    <Label Text="Settings Page"
                           VerticalOptions="CenterAndExpand" 
                           HorizontalOptions="CenterAndExpand" />
                </StackLayout>
            </ContentPage>
        </ShellContent>
    </TabBar>
1).将MainPage注释掉
2).添加tabbar功能
3).第一个ShellConten的路由设置为Mine文件,注意到ContentTemplate="{DataTemplate minePage:Mine}",当前不是local,是因为我们引用了命名空间并命名为minePage: xmlns:minePage ="clr-namespace:mauiDemo.Page".
路由 Route="Page/Mine" 可结合上篇文章了解,在下面会贴出完整项目结构图

</Shell>

2.运行查看效果如下:

3.项目完整结构图如下:

4.关于后续项目的计划

csharp 复制代码
1).添加sqlite帮助类,以方便数据存储到手机本身
2).可将UDP通信换成mqtt通信,并结合http将数据放置服务器,以实现远程控制设备功能
3).添加低功耗蓝牙BLE通信功能,对于无网络情况下近距离与仪器设备进行通信
4).IOS包的发布与实机测验
5).桌面端UI与移动端UI美化,目前未考虑UI,简单的横竖布局
6).添加图表数据展示
7).和uniapp进行性能上比较(了解到目前APP端uniapp需要下载第三方UDP插件,在UTS下可以编写调用原生UDP通信的插件,但UTS属于uniAPP x,demo暂时还开始,不过uniapp支持混用UTS插件,目前已实现在uniapp中调用UTS分享自定义插件,年后测验一下UTS自定义udp插件)
相关推荐
武藤一雄7 分钟前
C#:进程/线程/多线程/AppDomain详解
后端·微软·c#·asp.net·.net·wpf·.netcore
老蒋新思维1 小时前
创客匠人启示录:AI 时代知识变现的底层逻辑重构 —— 从峰会实践看创始人 IP 的破局之路
网络·人工智能·网络协议·tcp/ip·数据挖掘·创始人ip·创客匠人
码农爱学习2 小时前
使用wpa工具配网、udhcpc分配IP的过程分析
网络·网络协议·tcp/ip
北京耐用通信3 小时前
协议转换的‘魔法转换器’!耐达讯自动化Ethernet/IP转Devicenet如何让工业机器人‘听懂’不同咒语?”
网络·人工智能·科技·网络协议·机器人·自动化·信息与通信
CAir25 小时前
一问读懂并了解HTTP代理的基本原理
网络·网络协议·http·代理
北京耐用通信5 小时前
阀岛的“超级大脑”:耐达讯自动化网关让EtherNet/IP转DeviceNet“说同一种语言”
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
卓码软件测评5 小时前
具有CMA和CNAS双重资质的软件测试机构【Gatling脚本开发资源请求处理:html、css、js自动下载配置】
websocket·网络协议·测试工具·单元测试·测试用例
武藤一雄5 小时前
C#:Linq大赏
windows·后端·microsoft·c#·.net·.netcore·linq
喜欢流萤吖~6 小时前
POST 与 GET:HTTP 请求方法的本质区别
网络·网络协议·http
ChaITSimpleLove7 小时前
从美食城的思考,如何构建.net高并发系统?
.net·高并发架构·dapr·以柔克刚·缓冲平滑过渡·分类归治·旁路缓存side-cache