码迷,mamicode.com
首页 > 其他好文 > 详细

Xamarin QQ Sdk的简单绑定过程

时间:2018-01-17 00:55:49      阅读:296      评论:0      收藏:0      [点我收藏+]

标签:.com   就是   arp   sdk   1.2   telephony   api   phi   本地应用   

      项目中要用到分享功能,但是又不想用第三方的分享Sdk,所有就直接去绑定原生Sdk来实现。这里简单记录一下iOS下QQ SDK的绑定过程,以备以后查询。

      前面的准备工作就不说了,这里是在安装好Xcode,Sharpie的情况下去绑定。在这里碰到一个坑,如果你安装的Sharpie版本是3.4以下的版本,使用以下命令是没有问题的,可以正常生成ApiDefinition.csStructs.cs两个文件

sharpie bind --output=Static -namespace=TecentIM -sdk=iphoneos11.2 Headers/*.h

但是如果是3.4版本,那么使用上面的命令就会生成巨大的文件,本来就是几十K的文件,结果生成出来是几M的文件,很明显是不对的,这里我们就要在命令里面多加个参数-scope Headers。命令如下:

sharpie bind --output=Static -namespace=TecentIM -sdk=iphoneos11.2 
-scope Headers
 Headers/*.h

正确生成这两个文件后,我们来新建iOS绑定库。这个必须要在Mac上来生成了。新建项目后,我们把刚才的两个文件替换掉项目里面的同名的文件。把ios Sdk添加到项目的本地应用里面。然后我们就可以尝试生成项目了,会发现有不少的错误,首先来修改Structs.cs文件里面的内容,会发现有写枚举是继承uint,我们把它删除掉,

技术分享图片

如果有Verify的特性在的话也统统删除掉。ApiDefinition.cs文件里面带Verify特性的也全部删除掉此特性。接着重新编译项目,会发现如下错误:

 

技术分享图片

我们看下错误提示是没有找到此接口类型,我们看上面的注释,很显然这里应该是TencentLoginDelegate,TencentWebViewDelegate。接着看下个错误:

技术分享图片

重复定义Static,我们把这行删除掉。

技术分享图片

这里TencentAuthorizeState是一个枚举类型,在C#中不是这样用的,修改下定义

技术分享图片

接着我们在尝试编译项目,发现成功了。接下来我们应该做什么那,我们要看下该SDK依赖哪些库,我们要把这些库加进去,否则在项目中使用的时候会报错,依赖的静态库有如下这些:

SystemConfiguration CoreTelephony QuartzCore CoreGraphics Security

依赖的动态库有如下这些:

-ObjC -fobjc-arc -lstdc++ -lz -dead_strip -lsqlite3 -lc++ -liconv

技术分享图片

 

 

Xamarin QQ Sdk的简单绑定过程

标签:.com   就是   arp   sdk   1.2   telephony   api   phi   本地应用   

原文地址:https://www.cnblogs.com/zjmsky/p/8298035.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!