Xamarin绑定QQ登陆

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)]这种错误全部删除可以直接删除的

编译生成即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这几天公司有一个新的需求,就是要将我们开发的某些东西都抽取出来,打个比方我们开发了A项目,可以以后B项目要包含A项...
    黄鱼儿啦啦啦阅读 6,275评论 2 16
  • 一路堵,一路红绿灯,走走停停好不容易到了公司,地下停车口栏杆抬起,习惯的和王师傅打了个招呼,停车位一向...
    天德合月德阅读 402评论 0 6
  • 今天下午上社团的时候,我和孙华一、王跃霖,王琪、郑雨涵,我们五名同学去二楼办公室参加古诗词大赛。 对这...
    金子轩阳光小男孩阅读 707评论 0 7
  • 我把记忆 打捞成一段时光 在你看不到的远方 向光而望 我把过往 刻画成一段旅程 在你走过的地方 重走一趟 终于修炼...
    相由心生MM阅读 3,489评论 57 112