MAUI和Android、IOS的互操作之IOS篇

news/2025/9/20 13:43:07/文章来源:https://www.cnblogs.com/dx5800/p/19102367

上一篇演示了Maui如何与Android互操作,这篇是关于Maui与ios的互操作上一篇演示了Maui如何与Android互操作,这篇是关于Maui与ios的互操作。

1.首先下载官方demo,下载完代码以后用Xcode打开Native项目,路径位于template/macios/native/NewBinding/NewBinding.xcodeproj,在演示代码基础上新增一个方法,接着用Xcode编译项目
image
2.用VSCode编译ios的binding项目,编译后bin目录会有swift对应的.h头文件,本次项目示例位于template/macios/NewBinding.MaciOS.Binding/bin/Debug/net9.0-ios/NewBinding.MaciOS.Binding.resources/NewBindingiOS.xcframework/ios-arm64_x86_64-simulator/NewBinding.framework,导航到该目录执行以下命令:
sharpie bind --output=sharpie-out --namespace=NewBindingMaciOS --sdk=iphoneos18.5 --scope=Headers Headers/NewBinding-Swift.h
image
执行完以后会输出错误,不知道这是什么错误,但还是输出了我们需要的文件ApiDefinition.cs,新增的方法出现了,接着把这个新增的方法添加到ios的binding项目ApiDefinition.cs里面,编译binding项目
image
3.回到Maui主项目,修改代码启动
image
image

总结:
Swift项目输出头文件,通过sharpie把头文件的方法封装成C#可以调用的类,实现了C#与Swift的互操作

参考文章:
1、https://learn.microsoft.com/zh-cn/dotnet/communitytoolkit/maui/native-library-interop/get-started
2、https://github.com/CommunityToolkit/Maui.NativeLibraryInterop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/908353.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OBS Studio视频直播录制软件下载安装教程(录屏直播软件下载)

目录OBS Studio视频直播录制软件介绍OBS Studio视频直播录制软件安装教程一、OBS StudioWin 版安装教程(支持 Win10/Win11 及更高版本,32/64 位系统通用,含 Win11 22H2/23H2 版本)二、OBS StudioMac 版安装教程(支…

实用指南:[论文阅读] 人工智能 | 通用AI落地新路径:大语言模型智能体操作系统研究综述精读

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

C++学习笔记之输入输出流 - 教程

C++学习笔记之输入输出流 - 教程2025-09-20 13:24 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !import…

【Java】Hashtable讲解

Java中的Hashtable是线程安全的哈希表实现,继承自Dictionary类并实现了Map接口。基础操作 创建实例

使用Inno Setup打包安装程序exe流程

使用Inno Setup制作WPF开发的桌面应用程序流程 1.项目框架布局项目目录:D:\Project\XenD101H\Tools,这个目录我将下载innosetup-6.2.2.exe 安装的程序放置这里,以及有几个脚本执行文件,最后输出RadarSensorConfigT…

【JAVA】TreeSet讲解

什么是TreeSet?TreeSet是JAVA中集合的一种,它通过红黑树(Red-Black Tree)数据结构实现了有序的,唯一元素存储结构。一、TreeSet的定义 TreeSet是Java集合框架中的一种有序集合,它实现了Set接口,因此具有不允许重…

攻防世界 web

入门必看的ctf网站攻防世界 baby_web 解题 说到初始界面肯定是会想到index.php但是实际进入题目以后发现是1.php,在通过dirsearch扫描网页目录无果后尝试直接在url输入index.php,结果发现还是会自动跳转到1.php方法一…

批判 vs 审判

批判 vs 审判判断力是一个人最重要的能力

XXL-JOB-源码分享(1)

XXL-JOB-源码分享(1) 自研调度组件并支持集群部署,可保证调度中心HA;com.xxl.job.core.executor.XxlJobExecutor#initEmbedServer 初始化内部调度服务查看代码 private void initEmbedServer(String address, Stri…

ctfshow web入门 SSRF

ctfshow web351 curl_init():初始curl会话 curl_setopt():会话设置 curl_exec():执行curl会话,获取内容 curl_close():会话关闭 <?php // 关闭所有错误报告(不显示任何PHP错误) error_reporting(0);// 高亮显…

C#中避免GC压力和提高性能的8种技术

本文将展示 8 种技术来最大限度地降低 GC 压力,并通过这样做来提高性能。8 Techniques to Avoid GC Pressure and Improve Performance in C# .NET Performance | .NET , Memory / May 27, 2019 In a .NET applicati…

UNIX网络编程笔记:共享内存区和远程过程调用 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于OpenCv做照片分析应用一(Java) - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

函数内联

本文将介绍 什么是内联(Inlining)、为什么重要,以及如何在 .NET 应用中有效使用 [MethodImpl]。一个相对小众但强大的工具就是 [MethodImpl(MethodImplOptions.AggressiveInlining)] 特性。 本文将介绍 什么是内联(…

7. Innodb底层原理与Mysql日志机制深入剖析

7.1 Mysql的内部结构 大体来说,MySQL可以分为Server层和存储引擎层两部分。 7.1.1 Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内 置函数(如日期、…

WPF 字符竖向排列的排版格式(直排)表明控件

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

新建Vue3项目流程

新建Vue3项目流程​一、环境准备​​ 创建Vue3项目前,需确保系统安装以下工具:• ​​Node.js​​:建议使用LTS版本(≥18.3),可通过node -v命令检查是否安装成功;• ​​包管理工具​​:推荐使用npm(Node.js自…

G. Chimpanzini Bananini

View PostG. Chimpanzini BananiniG. Chimpanzini Bananini大致题意:有以下三种操作:循环右移数组,即 \([a_1, a_2, \ldots, a_n]\) 变成 \([a_n, a_1, a_2, \ldots, a_{n-1}]\)。 反转数组,即 \([a_1, a_2, \ldot…

深入解析:HSA35NV001美光固态闪存NQ482NQ470

深入解析:HSA35NV001美光固态闪存NQ482NQ470pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &qu…