zoukankan      html  css  js  c++  java
  • 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并没有把错误打出来,有时候很无奈.所以还是希望能够仔细看看那些类,还有就是
    
        那些限制,比如标题的限制,图片大小的限制等等,本人在这上面吃了大亏.都是不仔细弄得.希望大家不要犯跟我一样的错误. 
  • 相关阅读:
    URAL——DFS找规律——Nudnik Photographer
    URAL1353——DP——Milliard Vasya's Function
    URAL1203——DPor贪心——Scientific Conference
    递推DP HDOJ 5389 Zero Escape
    区间DP UVA 1351 String Compression
    树形DP UVA 1292 Strategic game
    Manacher HDOJ 5371 Hotaru's problem
    同余模定理 HDOJ 5373 The shortest problem
    递推DP HDOJ 5375 Gray code
    最大子序列和 HDOJ 1003 Max Sum
  • 原文地址:https://www.cnblogs.com/niray/p/4089853.html
Copyright © 2011-2022 走看看