如何绕过微信sdk审核进行分享?
可能有的朋友会问我为什么要绕过微信sdk审核?
这里我就不做过多的解释,如果能够进行正常分享的像用原生的sdk,友盟这类的自然就不用考虑这些,但是有的app分享的内容正常来说微信是不让你分享的(也不要问我是什么app哈哈)
前段时间私信我的朋友们抱歉了最近比较忙没时间写demo...
这里我就给大家简单介绍几种
## 1. 通过 intent 方式##
网上很多这种资料,这种方式是比较好的,而且不仅能分享到微信,qq也可以,甚至你可以分享内容到你自己的应用
不过这种方式有个缺点就是不是太好看(这个其实就是看需求...)
经过一系列测试:(如果哪位大神有更好的欢迎留言)
分享给微信好友:
只能分享纯图片 或 纯文本
朋友圈:
可以文字和图片同时分享
qq好友:
只能分享纯图片 或 纯文本
qq空间:
这个就有点不一样了,需要安装qq空间这个应用才能分享...比较蛋疼,不过同样是文字和图片都可以分享
这里我就不细说了,网上就能查到,没找到的话到我项目里找
## 2. 通过 uc浏览器 qq浏览器 方式##
这个方式我现在项目中已经淘汰了,缺点很明显 就是你点击分享的时候需要打开 uc或者 qq浏览器并跳转到另一个页面,再分享,这样的话
一个是很慢,要比其他方式都慢,而且只能分享到qq好友,微信好友,微信朋友圈
这个怎么说呢,确实能绕过微信审核,不过就是体验不太好(主要是用户反馈过这个问题,嫌太麻烦...)
## 3. 通过修改微信sdk代码绕过审核 ##
这个是我要重点说的,现在项目中也都是用了这种方式,除非在分享的过程中失败了(因为毕竟是分享到第三方,可能会出现什么意想不到的错误),才会用 intent 进行分享
不知道大家在其他app中见没见过分享到微信好友后 返回的不是你自己的应用而是显示返回qq/微博/今日头条/百度 等等其他的应用,当你点击返回时却返回到你自己的应用
当你分享到微信朋友圈时左下角 显示的分享来源也是qq/微博/今日头条/百度 等等其他的应用而不是你正在使用的应用
这种效果其实就是绕过了微信sdk的审核,因为如果能够正常分享谁会不让来源显示自己的应用呢?
其实这种方式就是使用其他应用的appId,包名 来进行分享,但是如果走正常微信sdk的流程你会发现,点击分享后闪一下就没有反应了,(这里我猜测是,微信sdk会验证你是否是来自这些应用进行分享,当你在自己的应用使用时就调不起来分享页面)
下面有两种解决办法:
1,在分享前下载一个分享的插件,通过这个插件进行分享(这种是大部分app的做法,不过这个说实话挺操蛋的,我分享个东西还要下载个app才能分享)
2,直接把主要代码揉到自己的app中(这才是正经的解决办法)
我这里简单说下流程,具体的话看demo里的方法
拼接参数时还是走微信拼装的方式
WXWebpageObject localWXWebpageObject = new WXWebpageObject();
localWXWebpageObject.webpageUrl = shareUrl;
WXMediaMessage localWXMediaMessage = new WXMediaMessage(localWXWebpageObject);
localWXMediaMessage.title = shareTitle;
localWXMediaMessage.description = shareContent;
localWXMediaMessage.thumbData = (bmpToByteArray(localBitmap2, true));
SendMessageToWX.Req localReq = new SendMessageToWX.Req();
localReq.transaction = System.currentTimeMillis() + "";
localReq.message = localWXMediaMessage;
localReq.scene = type;
//最后分享的步骤不要吊微信原生的,而改用我项目里写的方式
WxShare.sendReq(weakReference, onShareLitener, localReq, appId, packageName)
WxShare 这个类就是最后的分享代码
这里说下不要用微信sdk最新的jar 包,里面有的类已经删除了
如果想玩玩的话就用我项目里的
我这里目前是这个顺序,qq-uc-qqBrowser-今日头条
-百度-新浪微博
其实可以先判断用户装了哪几个再随机取一个,有点新鲜感哈哈
项目里的appId 和包名其实也是反编译别人的插件找到的
为了这个东西弄了1周才整出来,网上的资料都翻遍了也没找到
这里我把这个开源出来希望其他android小伙伴碰到类似的需求能更快的解决吧
如果想看分享后的样子可以看这里
http://bbs.csdn.net/topics/392164034?page=1#post-402424763
不多说了有需要的看demo吧
https://github.com/ahaSweather/MainUiFrame.git