[原]Android中接入微信客户端心得

2019-03-02 00:53|来源: 网路

最近因为工作的项目中要接入微信开放平台,于是一直在做这方面的工作,再加上比较忙,所以只有现在才有机会来记录一下关于程序中接入微信开放平台的事情。

目前android版只支持SDK接入微信,朋友圈分享功能只有ios支持,相信不久就会有android版本的支持的。好了,废话不多说,进入话题,详情请移步http://open.weixin.qq.com

关于程序接入微信客户端,只需要以下四步:

**********华丽的分割线**********

特别要注意签名,一定要和你的APP签名保持一致,否则在你分享的过程中弹不出选择联系人的界面。

*****************************

     第一步:申请APP_ID,请移步http://open.weixin.qq.com/app/list/.在这里需要注意的是Android应用除了获取AppID外,还需要在网站上填写包名和签名两个字段,签名的具体生成方法如下:

    这里以windows平台的cygwin环境和命令行环境为例,且默认开发者已经安装了jdk,能够正常使用keytool

 

    1、cygwin环境下

cygwin环境下运行如下命令,输出结果即为signature

keytool -exportcert -alias [alias] -keypass [alias password] -keystore [keystore file path] -storepass [keystore password] | md5sum

 

例如:当前路径下包含用于对app签名的test.keystore文件,且keystore密码为123456,别名为openapi,别名密码为654321,则运行如下命令:

keytool -exportcert -alias openapi -keypass 654321 -keystore ./test.keystore -storepass 123456 | md5sum

 

输出结果为:8f88de9693d22430ad7ce55047ec7946

 

  

 

    2、命令行环境下

由于命令行下系统没有提供默认的md5sum,建议开发者自行选择合适的md5生成工具(http://sourceforge.net/directory/os:windows/freshness:recently-updated/?q=md5 ),生成方法跟cygwin环境下类似,可以先将keytool的输出重定向到文件,然后再用md5生成工具对该文件进行md5处理,获得signature,结果跟cygwin环境下相同。

 

keytool -exportcert -alias openapi -keypass 654321 -keystore ./test.keystore -storepass 123456 > out.txt

 

二、下载微信终端开发工具包

三、在代码中使用开发工具包(以上两步详情请移步:http://open.weixin.qq.com/document/gettingstart/android/);

 

这里主要说明的是本人碰到的几个问题:

 

1、在接入微信客户端的过程中一定要注意:首先判断是否安装有微信(使用IWXAPI类的isWXAppInstalled()方法),否则你会发现程序是正确的,但是无论如何都不会得到想要的结果,也不会报任何错误。

 

2、在接入微信客户端的过程中一定要注意:当前的微信版本是否是4.0(使用IWXAPI类的isWXAppSupporAPI()方法),后果如上。

3、在接入微信客户端的过程中一定要注意:分享图片的时候,SDK协议中对缩略图的大小作了限制,大小不能超过32K。另外限制的还有title、description等参数的大小,否则后果如上。

4、如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面3步操作:

        a、在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity,并在manifest文件里面加上exported属性,设置为true。

       b、 实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法

       c、在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法。

   d、当微信发送请求到你的应用,将通过IWXAPIEventHandler接口的onReq方法进行回调,类似的,应用请求微信的响应结果将通过onResp回调。

    最后应该注意:微信开放平台分享图片Url是一个bug,貌似是分享不了的,现在不知道这个bug修复了没有。

 

 


转自:http://www.cnblogs.com/tanlon/archive/2012/07/09/2583661

相关问答

更多
  • 微信电脑版没有客户端,只有网页版,就算下载的所谓客户端也就是一个网页快捷方式。 (我以前下过~) 只要在百度输入“微信电脑版”就会出来相关下载。
  • 可以用android http访问方式访问java客户端。java客户端可以使用action进行连接。。又或者对socket比较熟悉的话,可以使用mina进行socket通信。也是可以的,不过这些都需要时间。没有进行尝试,可以试着写写。至于其他的,参考普通的webproject即可。 1,先google一下下载一个tomcat, 2,再次google一下百度也可以,下载一个eclipse的tomcat插件,解压之后直接放入eclipse的plugin文件夹下面,然后重启eclipse(之后觉的这个步骤好像没 ...
  • import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('127.0.0.1', 8888)) s.listen(1) conn, addr = s.accept() print conn, addr # ('127.0.0.1', 2134) #addr 第一个为客户端ip,第二个为端口,上面的程序是tcp服务,udp类似。
  • 微信支付是由腾讯公司知名移动社交通讯软件微信及第三方支付平台财付通联合推出的移动支付创新产品,旨在为广大微信用户及商户提供更优质的支付服务,微信的支付和安全系统由腾讯财付通提供支持。 微信支付分为扫码支付、App内支付和公众号支付三种。用户只需在微信“我的银行卡”选项中关联一张银行卡,并完成身份认证,即可使用装有微信App的智能手机购买合作商户的商品及服务。(绑定银行卡教程可以从作者的经验中查找得到。) 一、扫码支付(美丽说) 在美丽说网站上选择一件你要买的物品,最后在选择支付方式中,选择微信支付,在支付页 ...
  • 接入第三方平台还咋能开发,都是别人的服务器了,你没那么多权限,就只能添加他上面有的功能,如果想自己开发,可以直接写框架对接自己的号,功能开发不懂我可提供技术
  • 不是路由问题,一般vpn服务默认内网是不通的。
  • 你好,安卓手机可以在应用宝下载,因为在应用宝里面下载的都是官网的软件,是安全无毒的,毕竟保护手机的安全才是最主要的,所以下载软件当然要选择安全的市场了。它还有很多的功能,例如游戏升级的时候会提示你升级,有了新游戏,会提示你什么时候开服之类的等等。
  • 你的第二个键就是menu键,也就是菜单的意思。按一下,在屏幕下方会出现提示,删除账号或者切换账户。如果你是想换机器,那么你别费这个劲了,直接设置里面恢复出厂设置算了,这样啥都没了。
  • 您可以获取您所连接的接入点的BSSID。 就像是: WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); String BSSID = info.getBSSID(); 不是100%,因为我从来没有使用BSSID,但它应该唯一地标识基站 - 维基百科似乎表明您将获得AP的MAC(靠近底部) : http://en.wikipedia ...
  • 使用Sony QX1,该设备只能作为WiFi接入点,没有(公开记录)功能使其成为客户端。 如果QX10有任何不同,我会错开。 With the Sony QX1 the device is only able to act as a WiFi access point, there is no (publicly documented) capability to make it a client. I'd be staggered if the QX10 was any different.