美文网首页
Xamarin绑定QQ登陆

Xamarin绑定QQ登陆

作者: smallqiang | 来源:发表于2019-06-20 23:33 被阅读0次

APP需要增加QQ登录功能,首先先下载QQ的SDK的最新版本(http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD)

首先,我们新建一个Android的绑定库,项目名称为QQ.Binding.Android,将下载的SDK解压后找到libs目录下面的open_sdk_r6019_lite.jar,将其复制到Jars文件夹。

执行一次编译,会出现两个错误:

obj/Release/generated/src/Com.Tencent.Tauth.IUiListener.cs(165,28,165,30): error CS0102: The type 'CompleteEventArgs' already contains a definition for 'p0'

obj/Release/generated/src/Com.Tencent.Tauth.IUiListener.cs(166,35,166,37): error CS0102: The type 'CompleteEventArgs' already contains a definition for 'P0'

于是乎我们针对性的修改一下Transforms\Metadata.xml,修改后的内容为

<?xml version="1.0" encoding="UTF-8"?>

<metadata>

    <attr path="/api/package[@name='com.tencent.tauth']/interface[@name='IUiListener']/method[@name='onComplete']" name="argsType">UiCompleteEventArgs</attr>

</metadata>

重新编译成功。

下面编译iOS的版本

解压下载的SDK,找到TencentOpenAPI.framework这个包,其实是一个文件夹,打开之后找到TencentOpenAPI,将其改名为TencentOpenAPI.a

3、创建一个iOS的绑定项目,将这个文件拖到根目录

4、下载并安装https://dl.xamarin.com/objective-sharpie/ObjectiveSharpie.pkg

5、切换到TencentOpenAPI.framework的上级目录

执行cd命令切换到TencentOpenAPI.framework所在的目录

执行以下命令,生成绑定文件

sharpie bind --output=QQ.Binding.iOS  --namespace=QQ.Binding.iOS  -sdk iphoneos12.2 -scope ./TencentOpenAPI.framework/Headers/ ./TencentOpenAPI.framework/Headers/*.h

这个版本要跟xcode的版本一致,如果不知道自己的xcode版本,可以执行

sharpie xcode -sdks

6、刚才切换到的目录下面的ApiDefinitions.cs文件拷贝到项目的ApiDefinition.cs

7、StructsAndEnums.cs里面的内容也拷贝到Structs.cs

8、编译之前,将接口ITencentLoginDelegate改名为TencentLoginDelegate,ITencentWebViewDelegate改名为TencentWebViewDelegate

接口错误

9、将重复定义Static,我们把这行删除掉。(不知道为什么这个Constants接口会分为两部分了,这个没有问题,但是定义两次Static就不行了)

静态类重复定义

10、这里TencentAuthorizeState是一个枚举类型,不知道怎么搞成指针了。。删掉*号

指针错误

PS:那些[Verify (ConstantsInterfaceAssociation)]这种错误全部删除可以直接删除的

编译生成即可。

相关文章

网友评论

      本文标题:Xamarin绑定QQ登陆

      本文链接:https://www.haomeiwen.com/subject/yhnsqctx.html