上一篇演示了Maui如何与Android互操作,这篇是关于Maui与ios的互操作上一篇演示了Maui如何与Android互操作,这篇是关于Maui与ios的互操作。
1.首先下载官方demo,下载完代码以后用Xcode打开Native项目,路径位于template/macios/native/NewBinding/NewBinding.xcodeproj,在演示代码基础上新增一个方法,接着用Xcode编译项目
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
执行完以后会输出错误,不知道这是什么错误,但还是输出了我们需要的文件ApiDefinition.cs,新增的方法出现了,接着把这个新增的方法添加到ios的binding项目ApiDefinition.cs里面,编译binding项目
3.回到Maui主项目,修改代码启动
总结:
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