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

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

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

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

1
2
3
4
5
6
7
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会有问题,调用分享功能的时候,程序会出现没有响应的情况。

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

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

1
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中。

编译后会报出一堆错误,这些错误其实是起到一个提示的作用,让程序员验证一下sharpie的转换是不是正确,这里我将[Verify(************)]全部注释掉,也可以删掉,再次编译通过。

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

配置完成后,绑定工作算是大功告成了,可以继续后面的工作了。

欢迎大家指正。

Xamarin绑定微信SDK 实现分享功能的更多相关文章

  1. Xamarin Android绑定微信SDK

    现在几乎所有的APP都集成了向微博,微信等社交平台分享的功能.这些社交平台官方也提供了SDK让开发者使用,对于Android和IOS平台而言,只需要下载官方的SDK,按照官方说明文档进行集成就可以轻松 ...

  2. 微信JSSdk实现分享功能

    1. 概述 微信分享服务器的作用是为用户在微信浏览器端对来自网站以及客户端的页面进行二次分享链接时更友好的展示提供服务.为实现二次分享功能需要使用微信JS-SDK来开发. 微信JS-SDK是微信公众平 ...

  3. 微信小程序--分享功能

    微信小程序--分享功能 微信小程序前段时间开放了小程序右上角的分享功能, 可以分享任意一个页面到好友或者群聊, 但是不能分享到朋友圈 这里有微信开发文档链接:点击跳转到微信分享功能API 入口方法: ...

  4. 微信app的分享功能

    最近在做微信app,需要用到分享功能,横观文档,压根没有提过分享功能自定义的事情……后来在搜索中找到一些前辈的文章,使用WeixinJSBridge这个接口实现,但是,我非常非常好奇,这是什么渠道透露 ...

  5. 微信 SDK 不能 分享

    说多了都是泪水,真的. 前段时间,做好了微信的分享功能,测试通过的,最近我又跑了一遍用例,发现不能启动微信客户端了,怎么都启动不了,日志如下:ignore wechat app signature v ...

  6. 微信JS-SDK实际分享功能

    为了净化网络,整顿诱导分享及诱导关注行为,微信于2014年12月30日发布了<微信公众平台关于整顿诱导分享及诱导关注行为的公告>,微信平台开发者发现,原有的微信分享功能不能用了,在ipho ...

  7. Egret白鹭开发微信小游戏分享功能

    今天给大家分享一下微信分享转发功能,话不多说,直接干 方法一: 1.在egret中打开Platfrom.ts文件,添加代码如下(当然,你也可以直接复制粘贴) /** * 平台数据接口. * 由于每款游 ...

  8. 微信JS-SDK实现分享功能

    1 申请一个微信公众号,并确认在开发–接口权限中拥有分享功能的权限. 2 公众号设置–功能设置:在JS接口安全域名中添加安全域名,这个安全域名不是url,只需添加一级域名即可. 3 开发,基本配置中, ...

  9. Android 微信SDK图片分享(checkArgs fail, thumbData is invalid)

    微信官网给的Demo中.图片的分享例子他是这么描述的: String url = "http://pic2.nipic.com/20090506/1478953_125254084_2.jp ...

随机推荐

  1. iframe双滚动栏 解决方案 CSS3 overflow-y 属性

     裁剪 div 元素中内容的左/右边缘 - 假设溢出元素的内容区域的话: div { overflow-y:hidden; } <!DOCTYPE html> <html> ...

  2. export、exports、modules.exports 和 require 、import 的一些组合套路和坑

    推荐阅读第三方文章: http://www.tuicool.com/articles/uuUVBv2 引入: require / import 导出:export / module.exports / ...

  3. linux Find命令教程

    find的语法: find [起始目录] 寻找条件 操作 还有种表述方式:find PATH OPTION [-exec COMMAND { } \;] 因为find命令会根据我们给的option,也 ...

  4. DB2的sql函数

    转自:http://blog.chinaunix.net/uid-21162795-id-3587646.html 一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在 ...

  5. JqERY

    //下拉菜单样式 /*查找全部select的下拉菜单*/ function getElemsById(cot_val){ return document.getElementById(cot_val) ...

  6. C++static关键字用法

    一.static的作用有三种:限制变量或函数作用域.保持变量内容的持久.默认初始化为0 1.被static关键字修饰的全局函数或者变量具有文件作用域,即只在当前文件中可见. 2.被static修饰的变 ...

  7. 记一次线上MySQL数据库死锁问题

            最近线上项目报了一个MySQL死锁(DealLock)错误,虽说对业务上是没有什么影响的,由于自己对数据库锁这块了解不是很多,之前也没怎么的在线上碰到过.这次刚好遇到了,便在此记录一下 ...

  8. 获取页面的checkbox,并给参数赋值

    需求: 需要发送的请求:

  9. iOS中autolaylout和sizeclass的理解

    没发现居然有三四个月没写博客了,好惭愧.都是加班太多了,还好现在换了一家,还是得继续写啊. 主要是学习了http://onevcat.com/上的内容写的笔记,并自己动手操作了一下. 已经排好版了,懒 ...

  10. ADO.NET数据库应用开发_ExtendedProperties属性

    7.5.5 ExtendedProperties属性 ExtendedProperties属性用来获取存储自定义属性的集合.可以在该属性中增加附加的存储信息.它的扩展属性必须是字符串类型.当以XML的 ...