• 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并没有把错误打出来,有时候很无奈.所以还是希望能够仔细看看那些类,还有就是
    
        那些限制,比如标题的限制,图片大小的限制等等,本人在这上面吃了大亏.都是不仔细弄得.希望大家不要犯跟我一样的错误. 
  • 相关阅读:
    MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下Spring MVC的一些使用心得。
    @MySQL的存储引擎
    SpringMVC关于json、xml自动转换的原理研究
    json-lib 的maven dependency
    58到家数据库30条军规解读
    @Linux下Redis的安装
    Redis的5个常见使用场景
    Json对象和Json字符串的区别
    @查看MySQL版本的方法
    @java.lang.NoSuchMethodError
  • 原文地址:https://www.cnblogs.com/niray/p/4089853.html
Copyright © 2020-2023  润新知