博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Xamarin绑定微信SDK 实现分享功能
阅读量:5149 次
发布时间:2019-06-13

本文共 1631 字,大约阅读时间需要 5 分钟。

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

对于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,右键属性,配置如下:

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

欢迎大家指正。

转载于:https://www.cnblogs.com/xieqing/p/6520249.html

你可能感兴趣的文章
打开模态窗体,并获取返回值、刷新
查看>>
python中的单例模式
查看>>
python网络篇【第十一篇】队列、线程池
查看>>
ios view的frame和bounds之区别(位置和大小)
查看>>
switzerland, we're coming
查看>>
基于OSGi的企业级快速开发平台(开源)
查看>>
robotframework如何设计web页面的自动化---如何上传图片
查看>>
Lae程序员小漫画(二),仅供一乐
查看>>
阶乘末尾零数
查看>>
E: Sub-process /usr/bin/dpkg returned an error code (1) 出错解决方案 ...
查看>>
python3新特性函数注释Function Annotations用法分析
查看>>
HBase 的 HA (高可用性)
查看>>
使用apache+ glassfish实现负载均衡和集群
查看>>
遇到的几个算法题
查看>>
vue2.0.js
查看>>
ubuntu_deb安装命令
查看>>
省市县三级连动
查看>>
wp7音乐播放器
查看>>
oracle中的loop与while循环
查看>>
python班级群中的问题记录-2016.12.22
查看>>