Xamarin QQ Sdk的简单绑定过程

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

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

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

时间: 2024-10-07 23:01:33

Xamarin QQ Sdk的简单绑定过程的相关文章

Xamarin.Android广播接收器与绑定服务

一.前言 学习了前面的活动与服务后,你会发现服务对于活动而言似乎就是透明的,相反活动对于服务也是透明的,所以我们还需要一中机制能够将服务和活动之间架起一座桥梁,通过本节的学习,你将会学到广播与绑定服务,这两种方式恰恰是解决上面问题的关键. 二.简单的广播接收器 实现一个最简单的广播接收器需要继承BroadcastReceiver类,并且还要实现OnReceive方法,我们可以在项目中新建一个MainReceiver类,然后写入如下代码: 1 public class MainReceiver :

Android Service的绑定过程

通常我们使用Service都要和它通信,当想要与Service通信的时候,那么Service要处于绑定状态的.然后客户端可以拿到一个Binder与服务端进行通信,这个过程是很自然的. 那你真的了解过Service的绑定过程吗?为什么可以是Binder和Service通信? 同样的先看一张图大致了解一下,灰色背景框起来的是同一个类的方法,如下: 我们知道调用Context的bindService方法即可绑定一个Service,而ContextImpl是Context的实现类.那接下来就从源码的角度

【Win10 UWP】QQ SDK(一):SDK基本使用方法

每当开发一个应用需要社交分享的应用时,总是心里咯噔一下:到底什么时候分享能加上QQ和微信?除了WP8.0版本的微信SDK,官方似乎从未正面发布过适应时代发展的QQ SDK,就连后台,也没有一个可以创建WP应用的入口(其实WP QQ团队很早就已经在开发WP版的QQ SDK,只是网站那边一直没人管上线这事,具体你也懂). 吐槽完毕. 作为一个长期以来,致力于散播温暖,散播希望的小清新无公害WP开发者,今天又要给广大WP开发者传播希望了.博主拿到了非正式版的QQ SDK,并且做了一些封装,仅供学习交流

2015/10/4 iOS 笔记 细节 简单-代理过程 UITableView

一.简单-代理过程 1,创建代理 @class TgFootView; @protocol TgFootViewDelegate <NSObject> @optional   可选是否实现 视图的下载按钮被点击 - (void)tgFootViewDidDownloadButtonClick:(TgFootView *)footView; @end @interface TgFootView : UIView 代理如果使用强引用,就会产生循环引用,造成控制器和子视图都无法被释放,造成内存泄露.

ubuntu13.04下ftp的简单搭建过程

本文主要介绍一下ubuntu13.04下ftp的简单搭建过程: 主要实现基本的功能: l 实现匿名用户访问 l 上传资料 l 实现对特定ip或ip段开放服务 l 等等... 下面介绍一下安装过程: Ubuntu自带的FTP服务器是vsftpd. 1.安装vsftpd 对于ubuntu下相对简单只需要一条 sudo apt-get install vsftpd 安装默认在/src下建立一个ftp目录. 应该可以看到一个空白内容的ftp 文件. 默认状态下是可以匿名下载,但不能写入或是上传 2.设置

WinForm实现类似QQ停靠,显示隐藏过程添加特效效果

原文:WinForm实现类似QQ停靠,显示隐藏过程添加特效效果 这可能是个老题长谈的问题了,只是在项目中会用到这个效果,所以今天做个记录.大家见了别喷我.在项目中的需求是这样的. 打开程序,在屏幕的右下角会显示一个窗体,一般情况下该窗体会隐藏停靠在右边,只露出很小部分,当鼠标移动到这个很小部分时,窗体全部显示,显示过程是从右边滑动到左边,当鼠标离开窗体时,窗体需要隐藏在右边,只露出很小部分,隐藏过程是从左边滑动到右边. 实现此类效果我碰到的连个难点是:1.如何判断鼠标离开了窗体?2.窗体显示隐藏

Android深入四大组件(三)Service的绑定过程

相关文章 Android深入理解四大组件系列 前言 我们可以通过调用Context的startService来启动Service,也可以通过Context的bindService来绑定Service,建议阅读此篇文章前请阅读Android深入四大组件(二)Service的启动过程这篇文章,知识点重叠的部分,本篇文章将不再赘述. 1.ContextImpl到ActivityManageService的调用过程 我们可以用bindService方法来绑定Service,它的实现在ContextWra

Xamarin Android SDK无法更新的解决办法

Xamarin Android SDK无法更新的解决办法,更新时候,提示警告信息:A folder failed to be moved.出现这种情况,往往是从Visual Studio或者Xamarin Studio中直接运行了SDK Mananger.解决办法是从SDK目录中,手动运行SDK Manager.exe.如果还是无法解决,右击该文件,选择以管理员身份运行即可.

WPF DataGrid、ListView 简单绑定

DataGrid运行效果: xaml 代码: DataGridName= dtgData ItemsSource= {Binding} AutoGenerateColumns= False DataGrid.Columns DataGridTextColumnBinding= {BindingPath=id} Header= ID HeaderStringFormat= id / DataGridTextColumnBinding= {BindingPath=name} Header= 名称 H