Xamarin绑定微信SDK 实现分享功能

从开始作这一块的工做开始,就开始找各类的资料,最后仍是老老实实的去看官方文档。c++

对于Xamarin.Android的绑定属于纯jar的绑定,这个难度较小,添加Bindings Library,将libammsdk.jar添加到指定的文件夹中编译,不出意外的会报出两个错误,解决办法是:双击错误提示到相应的文件,而后找到错误提示中提到的类的定义,类定义的上面有路径,拷贝到Transforms文件夹下的Metadata.xml文件中,以下图所示,这样就ok了,编译经过程序员

在调用的微信API的过程当中,要求在微信申请的AppID与应用的包名以及应用签名要彻底对应起来,有一个没有对应起来,在调用的时候会出现调用微信闪退的状况。sql

另外,我在App中用的是微信的网页连接分享功能,在获取图片的byte数组的时候用的是下面几行代码数组

Bitmap thumb=BitmapFactory.DecodeResource(Utility.resources,Resource.Drawable.icon);

MemoryStream stream=new MemoryStream();

thumb.Compress(Bitmap.CompressFormat.Png,0,stream);

byte[] bitmapData=stream.ToArray();

还有一点要注意的是Resource.Drawable.icon对应的资源要在每一个drawable文件夹里都放一份icon,否则的话获取的bitmapData会有问题,调用分享功能的时候,程序会出现没有响应的状况。xcode

下面来讲一下Xamarin.iOS的绑定,这个相对来讲比较麻烦,也是在QQ群里遇到大神的指点才绑定成功的,对于iOS的微信绑定来讲,只要Bundle ID与微信开放平台申请的AppID 能对应起来就OK了。微信

一样的先添加一个iOS的Bindings Library,根据官方文档,安装了sharpie 还有xcode command line,接下来就是把下载下来的微信SDK for iOS用sharpie来转换一下:iphone

sharpie bind -output=iOS.WechatBinding -namespace=iOS.WechatBinding -sdk=iphoneos10.1 [绝对路径]/OpenSDK1.7.5/*.h

执行完成会提示有两个错误,可是照样会生成ApiDefinitions.cs跟StructsAndEnums.cs两个文件,根据官方文档,将两个文件中的内容分别复制黏贴到Bindings Library下的ApiDefinition.cs以及Structs.cs文件中,而且将libWeChatSDK.a添加到Native References中。spa

编译后会报出一堆错误,这些错误实际上是起到一个提示的做用,让程序员验证一下sharpie的转换是否是正确,这里我将[Verify(************)]所有注释掉,也能够删掉,再次编译经过。code

在iOS接入微信的sdk中会发现这样一段话:开发者须要在工程中连接上:SystemConfiguration.framework, libz.dylib, libsqlite3.0.dylib, libc++.dylib, Security.framework, CoreTelephony.framework, CFNetwork.framework。在这里须要编辑一下引入的libWeChatSDK.a的属性,Native References下的libWeChatSDK,右键属性,配置以下:orm

配置完成后,绑定工做算是大功告成了,能够继续后面的工做了。

欢迎你们指正。

相关文章
相关标签/搜索