集成微信分享被坑-都在隐藏副本里

为什么标题要说都在隐藏副本里呢?
因为在你注册和使用的时候,没有任何信息提示你正确的方式,下面的坑,我恰好全踩进去了,刻苦铭心。

  • 关于微信分享集成
    当你严格按照官方流程注册,配置到ShareSDK中,触发分享无反应,好吧你一定觉得我是不是哪里疏漏了。
    核查一遍:诶?都对着呢,没有疏漏,try again 马丹没反应,也看不到一丁点日志信息,此时你一定和我一样内心几乎是奔溃的。
    不得不打开度娘寻找希望的灯塔。



如果你已经入坑,那下面的料帮你出坑。如果你正准备入坑,那你读完本篇也免于步我后尘。

第一坑-微信开发者平台注册

在填写平台信息的时候,需要我们填写apk相关信息。

集成微信分享被坑-都在隐藏副本里_第1张图片
填写平台信息

重点时这个应用签名,debug签名release签名都行。但是这个签名将被微信用于鉴别你的apk是否申请到分享权限。
也就是说,你这里输入的签名必须和你测试的apk签名一致。

不管是jks,还是keystore,我们使用命令行查看签名都会得到下面的签名码

MD5: 34:F2:H8:38:DC:A4:45:EB:23:D4:E7:F2:3C:11:22:8D
SHA1: 21:A1:64:4A:78:33:6E:91:22:44:67:CC:3E:65:21:89:AE:89:BF:ED
SHA256: AE:6F:32:CC***

此处,我们只用MD5,因为我在有的帖子上看到有人贴的SHA1,亲测SHA1是不行的。

大写

如果你像上面一样是直接粘贴上去的,恭喜你,你已经掉进了第一坑

** 秘籍 ① MD5码 去冒号 且 全部小写**

在填写MD5码时,去掉冒号,并且全部使用小写-别问我怎么知道的,巨人无处不在。

集成微信分享被坑-都在隐藏副本里_第2张图片
小写签名

审核通过后,你配置好appid和appsecret,连上数据线或者使用wifi直接运行工程。你会发现还是不行,不要急。


秘籍② 测试必须使用注册的签名打包
上面我们提到,签名用于微信检查apk是否有分享权限。大部分同学run的都是debug签名,如果你需要测试微信分享,就必须Generate signed APK,使用提供上面MD5的签名文件进行打包。
每次测试都要打包,不累死也浪费大把时间
你可以在module目录下的build.gradle文件中添加如下配置,这样debug和release的签名就一至了,不需要打包,就可以测试,将jks或者keystore文件放到module根目录下。

    android {
    //配置签名文件
    signingConfigs {
        release {
            keyAlias 'release'
            keyPassword 'android'
            storeFile file('keystore.jks')
            storePassword 'android'
        }
    }

  buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release
        }
    }
}

第二坑-调用微信分享

我没有使用ShareSDK的分享UI,直接使用的分享内容API


                        ShareParams wechat = new ShareParams();
                        wechat.setShareType(Platform.SHARE_WEBPAGE);
                        wechat.setTitle("" + myfastbean.getTitle());
                        wechat.setText("" + myfastbean.getSnapDes());
                        wechat.setImageUrl("" + myfastbean.getPicture());
                        wechat.setUrl("" + myfastbean.getLink());
                        Platform weixin = ShareSDK.getPlatform(Wechat.NAME);
                        weixin.setPlatformActionListener(shareListenner);
                        weixin.share(wechat);

** 秘籍 ① 使用Platform.SHARE_WEBPAGE必须字段**
Title、Text、Url、ImageUrl
就是 标题,内容个,连接,和icon,缺一不可

如果上面都没问题,那几本上微信分享就搞定了。

额外补充一点,Text字段。
秘籍 ②
Text字段,在分享到微信时有长度限制。最大不能超过64字节。如果超过则无反应,拉不起来,你依然别想看到任何log-别问我怎么知道的-----。

另外看到有的博客上说,在微信平台注册时填写的AppName必须和打包apk上的名字一样,经我亲测发现并无此要求,可以随意写,平台上的名字应该仅用于查看。


这是我自己踩过坑以后的总结,也希望能帮助到坑里的你。

你可能感兴趣的:(集成微信分享被坑-都在隐藏副本里)