跟我做⼀个高德地图的 iOS / Android MAUI 控件(前言)

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟我做⼀个高德地图的 iOS / Android MAUI 控件(前言)相关的知识,希望对你有一定的参考价值。

Microsoft Build 2022 ⼤会上正式发布了 .NET MAUI , 对于 .NET 开发者可以⽤ C# 完成跨平台的前端应⽤开发。对⽐起 MAUI 的前身 Xamarin , MAUI 除了可以⽤传统的原⽣开发模式外,还⽀持了 Blazor 的混合式开发。这也让更多⽅向的开发⼈员能进⼊到跨平台的应⽤开发中来。有⼈会提出云原⽣时代,前端开发还重要吗 ?实际上,多端应⽤兼容是云原⽣不可缺少的门面。互联⽹时代,有很多出⾊的应⽤,并发布了针对第三⽅应⽤的 SDK,开发者可以结合这些 SDK 做相关的解决⽅案。通过 MAUI 能调⽤这些 SDK 吗?我会通过系列⽂章去和⼤家介绍。作为该系列的开篇,我先来介绍⼀下需要掌握的技能, 让⼤家有所准备。

为何要绑定原生SDK

我们知道⼀个应⽤可以融⼊不同的场景,例如⼀个打⻋应⽤就需要地图,例如⼀个拍照应⽤就需要社交,例如⼀个如果你是传统的物联⽹应⽤你需要⼀个蓝⽛的通信协议。拿来主义就是⼀个节省的⽅式,可以结合第三⽅提供的 SDK 来完成应⽤的开发。对于 .NET 开发⼈员会是⼀个难点,因为习惯性地去调⽤ DLL ,但在ios / android 原⽣开发上,实际上是有不同的库调⽤机制。在 Xamarin 时代,就有不少开发者去⽤ C# 绑定第三⽅的库,例如在中国市场就有⽀付宝,微信,⾼德地图等。到了 MAUI 有什么不⼀样呢?在⼤致上是和Xamarin 绑定⽅式⼀样。但由于 MAUI 融⼊到了 .NET 6,实际上就是⼀个项⽬⽂件格式的改变。现阶段你可以通过命令⾏的⽅式快速构建 iOS / Android 的绑定项⽬。

01

MAUI iOS 库的绑定

dotnet new iosbinding -o iOS.AMapSDK.Binding

要做 iOS / macOS的绑定你除了创建绑定项⽬外,你还需要安装 Shapie ⼯具 (https://aka.ms/objectivesharpie)做对应转换, 可以通过命令⾏去针对 iOS 的动态库和静态库做对应转换。这⾥补充⼀点你的 Xcode环境是必须要安装的。下⾯是⼀个简单的转换语句,更多具体⼤家可以关注我的该系列的 iOS 库⽂件绑定⽂章。

sharpie bind -framework /your path/AMapFoundationKit.framework -sdk iphoneos15.5

02

MAUI Android 库的绑定

dotnet new android-bindinglib -o Droid.AMapSDK.Binding

Android 的绑定和 iOS 不⼀样,直接把第三⽅库 Android SDK 的 jar 或者 aar 包放进去编译即可。

如果你希望了解更多可以关注本系列 Android 库绑定的系列⽂章。

控件定制

在 Xamarin.Forms 中,通过渲染器机制对跨平台各⾃控件的引⽤,并且依赖于 INotifyPropertyChanged 。.NET MAUI 没取消了渲染器机制,⽽是引⼊了⼀种称为 Handler 的模式。有了 Handlers 更灵活 ,⽽且在需要时更容易扩展或覆盖。这是 MAUI 全新的 Handler 模式。

我们通过 Handler 机制可以构建好⾼德地图的 MAUI 控件

你可以通过 https://github.com/kinfey/AMapMAUIControls 使⽤体验 MAUI 的⾼德 Android / iOS 控件。

  

后记

本次系列的发布是希望有更多的⼚商和开发者能够针对 MAUI 开发相关的控件和基于 MAUI 的 SDK 。我知道现在跨平台开发都有 Flutter , ReactNative 等。但 MAUI 是⼀个⾮常值得投⼊的解决⽅案,从性能和开发效率都是有竞争性的。我知道传统⾏业有⾮常多的 .NET 开发者, MAUI 会为传统⾏业的数字化转型提供⾮常好的体验。

*相关资料

1.通过 Microsoft Docs 了解 MAUI

https://aka.ms/Docs.MAUI

2.通过 Microsoft Learn 学习 MAUI

https://aka.ms/Learn.MAUI

往期推荐:

CA周记 - 2022年的第一课Rust

CA周记 - 用 Visual Studio Code 做基于 .NET MAUI 跨平台移动应用开发

CA周记 - 通过 Azure ML + GitHub + GitHub Action 打通 ML 开发的任督二脉

CA周记 - 宇宙最強的IDE - Visual Studio 25岁生日快乐

CA周记 - “探店”低代码

CA周记 - 云上“炼”码兵器 GitHub Codespaces

CA周记 - C# 学习经验分享

CA周记 - 带你进入 OpenAI 的世界

CA周记 - 跟我做一个可以聊天的 Visual Studio Code 插件

CA周记 - .NET 6 Minimal API 的经验分享

CA周记 - Microsoft Build 2022 到来,开发者们做好准备了吗?

CA周记 - Build 2022 上开发者最应关注的七⼤⽅向主要技术更新

更多原创文章与资源共享

请关注Kinfey Techtalk

以上是关于跟我做⼀个高德地图的 iOS / Android MAUI 控件(前言)的主要内容,如果未能解决你的问题,请参考以下文章

在 Android中使用高德地图

ios高德地图怎么限制缩放级别?

iOS App内部调起百度地图、高德地图、腾讯地图

android手机 高德导航地图放哪个目录下

Android MVVM框架搭建高德地图定位天气查询BottomSheetDialog

高德地图组件在Android的应用以及Android与JavaScript的交互