Android 微信分享解疑

from:http://blog.csdn.net/freesonhp/article/details/10756663 

1、建立自己的应用 TestShareWX

(1)应用包名是com.freeson.test,然后建立一个测试Activity,名字为TestActivity,里面有一个Button和EditText

(2)运行程序,请记住此时你编译运行的时候,用的是android默认的debug.keystore签名的。

 

2、到官网http://open.weixin.qq.com/download/?lang=zh_CN下载开发工具包,解压,将libammsdk.jar复制到libs中,并将其add到build path中。

 

3、到官网http://open.weixin.qq.com/agreement登记你的应用,   这里省去前面那些基本的操作 ,这里要注意以下的步骤。

     其中有一步是要用个签微信那名的apk工具对我们程序进行签名的,因为我们的程序已经安装了,所以直接下载安装,然后在手机里面的那个框框输入包名(我这里是com.freeson.test,包名不能填错哦),点击生成按钮,这时候会生成一个md5值,将其输入到登记页面的框中 

这个md5值是需要正视签名发布后获取的MD5值 

5、其实在第一步的时候,就已经说了,我们在官网申请的AppId的时候填写应用程序签名也是就是用debug.keystore生成的。然而我们此时在手机里面运行的apk是用我们自己生成的签名(xxx.keystore)进行签名的,两个签名都不一致,所以很理所当然会导致分享失败。因为微信要对我们应用进行一个验证,就是通过这个签名来认证的。

  

1、还是签名问题,一个项目,几个人完成的话,如果大家都是用各自默认的debug.keystore进行运行的话,在debug版本,微信分享功能肯定只有在申请的微信appid的那台机器生产的apk才能正常。

2、关于微信分享信息结果反馈,这个要注意的是以下两点,要不要肯定是不会收到分享反馈的。

     (1)这个Activity的名字一定是WXEntryActivity

     (2)WXEntryActivity这个类一定是建立在 应用包名+wxapi包下(比如上述的工程,这时候包名应该是com.freeson.test.wxapi)

  签名跟打包apk生成的keystore有关,每次修改需要重新审核。
见 https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_faq_android_tmpl&lang=zh_CN

 

 

至于为什么第一次能分享,第二次点就没反应,我相信大多数人都是遇到过的 下面看看官方给的解释

Android常见问题
Q:应用没有审核通过能不能进行调试?
A:iOS应用只要申请并获取到AppID就可进行调试。Android应用除了获取AppID外,应用还要通过审核,否则无法调起微信进行分享,并且需要在网站上填写包名和签名两个字段,签名可使用签名生成工具获取。如有特殊需要,请自行参见《Signature的生成方法》生成。
Q:为什么代码混淆之后,会导致无法弹出发送第三方消息的确认框?
A:需要在混淆配置文件proguard.cfg中,增加如下两行代码:
-keep class com.tencent.mm.sdk.modelmsg.WXMediaMessage { *;}
-keep class com.tencent.mm.sdk.modelmsg.** implements com.tencent.mm.sdk.modelmsg.WXMediaMessage$IMediaObject {*;}
Q:为什么用网上下载的SDK Demo工程直接运行到设备上,一开始可以正常调试,后面就不可以?
A:这里是由于身份校验失败造成的,要运行SDK Demo工程,可以参考文档《如何运行SDK Demo工程》,同时请下载更新最新版的SDK Sample。
Q:为什么日志里面有时候会出现setup profile from amm_manifest.xml failed错误?
A:这是由于SDK加载内部配置文件失败造成的,不影响SDK的正常使用,可以忽略这个错误日志。
更多问题,请邮件联系 weixin-open@qq.com 或关注官方微博 http://t.qq.com/weixin_app 的最新动态。

在微信分享中主要碰到了如下问题:第一次可以分享,以后就无法调用出分享对话框。这不是程序问题,而是需要提交审核,只有审核通过,才可以调出分享对话框。不相信?那你可以先将微信退出,再试着点击分享,这时就会弹出登录对话款,登完之后也没有分享对话框,完全没你啥事了。

        另外android版微信分享开发时,应用签名(推荐使用官网提供的签名生成工具)是由你的打包所使用的数字证书来决定的。不相信?那先卸载此程序,再将你的应用包名重新改下,不要改变数字证书,运行。然后运用此签名生成工具获取应用签名,完全一样。因此,正式的应用发布还是要自己生成一个数字证书比较好。如果签名不是很理解,请看我之前的一篇文章:http://blog.csdn.net/qianfu111/article/details/9113887

 

 

第一步:

申请APP_ID,然后还需要填那个“应用类型” ---下载地址地址无关紧要;重点是应用签名,接下来会讲,先空着;包名,顾名思义就算你的Android应用的包名

第二步:

在程序中调用微信api,具体步骤,微信开放平台的android上手指南讲的很清楚。

第三步:

调试api,为了方便我们可以先用微信提供的demo。重点:1、找到demo根目录下的debug.keystore文件  2、选择Eclipse顶部菜单Window->Preferences,选择Android目录下的Build    3、指定Custom debugkeystore选项的路径为sdk demo工程目录中的debug.keystore文件  确定OK  (第一步保证了微信的SDK demo可以正常使用了)

 

a.很多人不知道那个签名生成工具到底是干嘛的。首先,你打包自己的包,自己的key一定要注意.也就是 export.

     b.在你的手机上安装你刚刚有签名的apk包。然后安装刚刚在微信开放平台上下载的那个apk包,叫gen_signature.apk

        c.打开gen_signature,输入你的包名。确定之后就会生成一串码(这个就是所谓的签名),这个非常重要。

    d.你要在微信开放平台上登记你的应用的时候,之后有一项必须要填写正确----“应用签名 (Android)”---填写刚刚你用gen_signature.apk生成的那串    码.

    e.然后你会发现怎么还是分享不成功?我告诉你,微信相当郁闷,他必须要审核通过了之后才能分享成功

    f.如果现在你还是分享不成功。有可能是因为你是直接run的。必须要打包安装在手机上,还有必须要有微信客户端。

    g.现在你还是分享不成功?看看你的代码里面,是不是注册了...再就是,你必须要审核通过才能分享成功.(快的话第一次三天左右)

     h.最后,还是希望大家在做分享的时候,仔细看看微信的文档.因为微信的sdk并没有把错误打出来,有时候很无奈.所以还是希望能够仔细看看那些类,还有就是

    那些限制,比如标题的限制,图片大小的限制等等,本人在这上面吃了大亏.都是不仔细弄得.希望大家不要犯跟我一样的错误. 

 

Android 微信分享解疑

上一篇:C#开发微信门户及应用(7)-微信多客服功能及开发集成


下一篇:C#开发微信门户及应用(6)--微信门户菜单的管理操作