背景
前言
介绍
App开发中难免不了要对接第三方平台,这些平台官网也提供了SDK供开发者使用。
对于Android和iOS平台而言,只需要下载官方的SDK,按照官方说明文档进行集成就可以轻松实现了。
但是对于MAUI来说,并没有官方的SDK,这个时候就需要我们绑定适用于.NET MAUI 的本机库。
本文主要介绍在MAUI中如何完成iOS绑定库,相比较Android绑定,iOS绑定会麻烦些,接下来让我们一步步在MAUI中实现iOS微信SDK的绑定。
*以下过程,均在macOS上操作
前置环境准备
3.安装Sharpie Shapie 是一个非常好用的转换工具,它支持在macOS下对 Objective-C 的库的转换。通过 Sharpie 可以对库文件给出的头文件进行转换完成 C# 的绑定。
通过 Sharpie 工具生成 C# 调用的接口
下载微信 iOS SDK,打开后里面有libWeChatSDK.a的静态库和三个头文件(.h)
我们需要将这几个.h文件转换为C#文件,这时候就需要用到Objective Sharpie(https://learn.microsoft.com/zh-cn/xamarin/cross-platform/macios/binding/objective-sharpie/get-started)工具
sharpie bind -output=WeChatSDK.IOS -namespace=WeChatSDK.IOS -sdk=iphoneos15.5 -scope [绝对路径]/OpenSDK1.9.6 [绝对路径]/OpenSDK1.9.6/*.h
转换成功后,会在你指定的文件夹生成ApiDefinitions.cs和StructsAndEnums.cs,StructsAndEnums.cs对应的是一些常量和枚举类型,ApiDefinitions.cs 对应的是一些接口和方法。
创建 MAUI 的 iOS 绑定项目
dotnet new iosbinding -o WeChatSDK.IOS
<ItemGroup>
<ObjcBindingApiDefinition Include="ApiDefinitions.cs" />
<ObjcBindingCoreSource Include="StructsAndEnums.cs" />
</ItemGroup>
<ItemGroup>
<NativeReference Include="libWeChatSDK.a">
<Kind>Static</Kind>
<ForceLoad>True</ForceLoad>
<Frameworks>CFNetwork CoreTelephony Security SystemConfiguration</Frameworks>
<LinkerFlags>-ObjC -all_load -lstdc++ -lsqlite3.0 -lz</LinkerFlags>
</NativeReference>
</ItemGroup>
这里需要删除AutoGeneratedName,删除后显示生成成功
绑定成功后如何确定程序已经运行?让我们接着往下看
测试绑定库
WXApi.RegisterApp("wxd930ea5d5a258f4f","https://help.wechat.com/sdksample/");
SendMessageToWXReq req = new SendMessageToWXReq();
req.Text = "Hello,MASA!";
req.BText = true;
req.Scene = 1;
WXApi.SendReq(req,null);