当前位置: 首页 > news >正文

大庆市网站建设_网站建设公司_展示型网站_seo优化

wordpress多网站建设,网站怎么做微信登录,网站模板建设报价,短视频制作完成网站我们知道 MAUI 是开发跨平台应用的解决方案 #xff0c;用 C# 可以直接把 iOS , Android , Windows , macOS , Linux ,Tizen 等应用开发出来。那我们在这个框架除了用底层自定义的 UI 控件外#xff0c;如果我们要用如高德地图这样的第三方控件#xff0c;要如何做呢#x… 我们知道 MAUI 是开发跨平台应用的解决方案 用 C# 可以直接把 iOS , Android , Windows , macOS , Linux ,Tizen 等应用开发出来。那我们在这个框架除了用底层自定义的 UI 控件外如果我们要用如高德地图这样的第三方控件要如何做呢接下来我就和大家介绍一下。如果你还没有学习原生库绑定的知识可以到以下链接学习相关内容CA周记 - 跟我做⼀个⾼德地图的 iOS / Android MAUI控件(iOS 原生库绑定)CA周记 - 跟我做⼀个⾼德地图的 iOS / Android MAUI控件(Android 原⽣库绑定)在上面两个例子中我们学习到把原生高德的 iOS / Android SDK 绑定也用 .NET for iOS 和 .NET for Android 进行了调用。但要用 MAUI 就意味着调用方式改变 一次性编写多平台使用。要实现这个效果先看看 MAUI 的基础架构。我们可以清楚看到 MAUI 除了公用的 xmal 文件外 实际上也把特定平台的一些设定放置到 Platforms 的文件夹内 Platforms 的自文件夹就是对应的平台。我们知道可以根据不同平台去渲染平台界面。这就是我们常说的自定义平台控件了。在前言部分我们也提到了 MAUI 采用 Handler 模式去设定平台界面。如果我们要实现一个高德地图的 MAUI 控件具体的架构是这样的我们需要去创建如上图的一个结构我们需要为 AMap 添加一个共享文件 AMap.shared.cs 这个文件 AMapHandler 继自 ViewHandler。public interface IAMap : IView{}public class AMap : View, IAMap{}partial class AMapHandler{public static IPropertyMapperAMap, AMapHandler MapMapper new PropertyMapperAMap, AMapHandler(ViewHandler.ViewMapper){ };public AMapHandler() : base(MapMapper){ }}然后在 Platforms 下的 Android 和 iOS 文件夹添加各自的平台 AMap 调用方法。为 AMap.Android.cs 添加 Android 环境下高德地图的渲染方式namespace AMap.UI.Apps {public partial class AMapHandler : ViewHandlerIAMap, MapView{private AMapHelper _mapHelper;private MapView mapView;internal static Bundle Bundle { get; set; }public AMapHandler(IPropertyMapper mapper, CommandMapper commandMapper null) : base(mapper, commandMapper){}protected override MapView CreatePlatformView(){mapView new Com.Amap.Api.Maps.MapView(Context);return mapView;}protected override void ConnectHandler(MapView platformView){base.ConnectHandler(platformView);AMapLocationClient.UpdatePrivacyAgree(Context, true);AMapLocationClient.UpdatePrivacyShow(Context, true, true);_mapHelper new AMapHelper(Bundle, platformView);mapView _mapHelper.CallCreateMap();}}class AMapHelper : Java.Lang.Object{private Bundle _bundle;private MapView _mapView;public event EventHandler MapIsReady;public MapView Map { get; set; }public AMapHelper(Bundle bundle, MapView mapView){_bundle bundle;_mapView mapView;}public MapView CallCreateMap(){_mapView.OnCreate(_bundle);return _mapView;}}}为 AMap.iOS.cs 添加 iOS 环境下高德地图的渲染方式amespace AMap.UI.Apps {public partial class AMapHandler : ViewHandlerIAMap, MAMapView {public AMapHandler(IPropertyMapper mapper, CommandMapper commandMapper null) : base(mapper, commandMapper){}protected override MAMapView CreatePlatformView(){MAMapView.UpdatePrivacyShow(AMapPrivacyShowStatus.DidShow, AMapPrivacyInfoStatus.DidContain);MAMapView.UpdatePrivacyAgree(AMapPrivacyAgreeStatus.DidAgree);AMapServices.SharedServices.ApiKey ;AMapServices.SharedServices.EnableHTTPS true;//try//{MAMapView map new MAMapView();map.SetShowsUserLocation(true);map.SetUserTrackingMode(MAUserTrackingMode.Follow);return map;}protected override void ConnectHandler(MAMapView PlatformView){ }protected override void DisconnectHandler(MAMapView PlatformView){if (PlatformView.Delegate ! null){PlatformView.Delegate.Dispose();PlatformView.Delegate null;}PlatformView.RemoveFromSuperview();}}}项⽬⾥⾯有 Transforms ⽂件夹有对应的三个 xml ⽂件分别是 EnumFields.xml EnumMethods.xml , Metadata.xml , 各⾃作⽤如下 1.因为这个控件只是针对 iOS / Android 两个平台所以我们只保留 net6.0-android 和 net6.0-ios2.高德 SDK 运行建议在真机下使用特别是 iOS 需要制定版本号还有编译环境我的环境是在 Apple silicon 下所以也要设定好 RuntimeIdentifier还有就是编译的时候我花了特别多时间在这里大家可以参考我这个在 GitHub 上自问自答的Issue https://github.com/xamarin/xamarin-macios/issues/15372PropertyGroup Condition$(TargetFramework.Contains(-ios))RuntimeIdentifierios-arm64/RuntimeIdentifierUseMSBuildEnginetrue/UseMSBuildEngineWarningLevel4/WarningLevelMtouchLinkSdkOnly/MtouchLinkSupportedOSPlatformVersion13.0/SupportedOSPlatformVersionDeviceSpecificBuildtrue/DeviceSpecificBuildMtouchDebugtrue/MtouchDebugMtouchFastDevtrue/MtouchFastDevMtouchProfilingtrue/MtouchProfilingMtouchUseSGentrue/MtouchUseSGenMtouchUseRefCountingtrue/MtouchUseRefCountingMtouchFloat32true/MtouchFloat32/PropertyGroup3.记得按照平台引入原生库的绑定ItemGroup Condition $(TargetPlatformIdentifier) ios ProjectReference Include..\iOS.AmapSDK.Foundation\iOS.AmapSDK.Foundation.csproj / ProjectReference Include..\iOS.AmapSDK.3D\iOS.AmapSDK.3D.csproj / /ItemGroupItemGroup Condition $(TargetPlatformIdentifier) android ProjectReference Include..\Droid.AmapSDK\Droid.AmapSDK.csproj / /ItemGroup查看完整项目文件请点击该链接https://github.com/kinfey/AMapMAUIControls/blob/main/src/AMap.UI.Demo/AMap.UI.Apps/AMap.UI.Apps.csproj也别忘记去把一些平台特有的设定设置好具体可以1iOS 设定请点击该链接https://github.com/kinfey/AMapMAUIControls/blob/main/src/AMap.UI.Demo/AMap.UI.Apps/Platforms/iOS/Info.plist2Android 设定请点击该链接https://github.com/kinfey/AMapMAUIControls/blob/main/src/AMap.UI.Demo/AMap.UI.Apps/Platforms/Android/AndroidManifest.xml4.在 MauiProgram.cs 上注册builder.UseMauiAppApp().ConfigureFonts(fonts {fonts.AddFont(OpenSans-Regular.ttf, OpenSansRegular);fonts.AddFont(OpenSans-Semibold.ttf, OpenSansSemibold);}).ConfigureMauiHandlers(handlers {handlers.AddHandler(typeof(AMap), typeof(AMapHandler));});选择编译运行就可以看到高德地图终于可以在 MAUI 环境下跑起来了。小结对于很多人来说或者都是初步接触了 MAUI 实际上要做好多平台的兼容还要有非常长的路要走。希望通过这个系列的文章能给一些第三方厂商和开发者一些帮助能尽快提供 MAUI 的支持。这样才能为这个新的技术注入活力。*相关资料1. 通过 Microsoft Docs 了解 MAUI https://aka.ms/Docs.MAUI2. 通过 Microsoft Learn 学习 MAUI https://aka.ms/Learn.MAUI3. 学习 ViewHandler 自定义 MAUI组件 请点击访问该链接 https://docs.microsoft.com/zh-cn/dotnet/maui/user-interface/handlers/customizeCA周记往期回顾:更多原创文章与资源共享请关注Kinfey Techtalk
http://www.lebaoying.cn/news/129153.html

相关文章:

  • 建设网站图片厦门站长优化工具
  • 沧州开发网站多少钱蓝杉互动网站建设
  • 阿里云做网站怎么样网站设计的原则有哪些
  • 创意设计一个网站网站规划建设方案模板
  • 电商网站新闻怎么做技校网站建设与维护课程教学总结
  • 深圳建筑设计平台网站哪个公司的软件系统开发
  • 聊城手机网站服务个人博客网站建设业务
  • 专业摄影网站推荐自己做网站语言构建服务器
  • 戴尔公司网站开发的经营目标wordpress怎么设置静态主页
  • wordpress 504seo词条
  • 怎样做网站优化 关键词姑苏区做网站
  • 学建筑的网站wordpress duplicator
  • 网站页面构成要素微课网站开发
  • 口碑好的定制网站建设公司哪家好wordpress 小说
  • 郑州网站建设如何网站建设费用报告
  • 国际网站怎么进网站开发php 图片上传失败
  • 在哪个网站上做推广作用好品牌网站部门建设
  • python网站开发视频表白视频制作
  • 河南建设部网站wordpress弹出框插件
  • 微楼书网站建设网站国外空间
  • 餐饮培训网站建设遵义城乡建设网站
  • 网站需要做404页面吗企业网站建设推广含义
  • 成都做网站建设公司你做的网站会不会被人模仿
  • 衡水网站检测公司云南建设厅网站设计
  • 汕头模板网建站wordpress会员推广
  • 建设申请网站html5 微网站 源码
  • 个人盈利网站怎么建立河南焦作有做网站开发的公司吗
  • 罗湖网站建设公司没有充值入口的传奇手游
  • 企业建站模板多少钱sae 网站模板
  • 网站推广包括哪些化工企业常用推广网站