在帮别的项目干活时遇到了要做微信分享的功能,当时觉得这不就是小case(因为之前都写过),可能是由于那边项目的人不太懂吧,居然没有提前去申请微信app_id,没关系,反正写过,打开之前的项目,复制粘贴,他们申请好了肯定就能用了,先看看我是怎么写的。

1、添加最新的微信分享sdk:

compile'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

2、微信初始化,你可以在Application 里面写,也可以在分享的activity的onCreat方法里面写:

public IWXAPI api;      //这个对象是用来向微信发送数据的一个接口,所有的信息发送都是基于这个对象的

public void registerWeChat(Context context) {  //向微信注册app

api = WXAPIFactory.createWXAPI(context, APP_ID, true);

api.registerApp(APP_ID);

}

3、就是你写你分享的ui了,具体就不粘贴代码了,下面看一下微信分享的方法,下面以网页分享为例子:

/**

*微信分享

*/

private void  wechatShare(int flag,String title,String content,String url) {

WXWebpageObject webpage = new  WXWebpageObject();

webpage.webpageUrl = url;//分享的url

WXMediaMessage msg = new WXMediaMessage(webpage);

msg.title=title;//分享的标题

msg.description=content;//分享描述

//这里替换一张自己工程里的图片资源

Bitmapthumb=BitmapFactory.decodeResource(getResources(),R.mipmap.icon_share);

msg.setThumbImage(thumb);

SendMessageToWX.Reqreq=newSendMessageToWX.Req();

req.transaction= buildTransaction("webpage");

req.message=msg;

req.scene=

flag==0?SendMessageToWX.Req.WXSceneSession:SendMessageToWX.Req.WXSceneTimeline;

mIWXAPI.sendReq(req);

}

privateStringbuildTransaction(finalStringtype) {

return(type==null) ?String.valueOf(System.currentTimeMillis())

:type+System.currentTimeMillis();

}

4、最后别忘记了微信分享的回调,一定要在wxapi包下面建一个Activity名字叫WXEntryActivity(固定)

public class  WXEntryActivity  extends  AppCompatActivity   implements  IWXAPIEventHandler{

private static final  String  TAG  =  "WXEntryActivity";

private  IWXAPI api;

@Override

public void  onCreate(Bundle  savedInstanceState) {

super.onCreate(savedInstanceState);

api = WXAPIFactory.createWXAPI(this,Constant.WX_APP_ID,false);

//api.registerApp(Constant.WX_APP_ID);

api.handleIntent(getIntent(),this);

}

@Override

protected voidonNewIntent(Intentintent) {

super.onNewIntent(intent);

setIntent(intent);

api.handleIntent(intent,this);

}

@Override

public voidonReq(BaseReq baseReq) {

Log.d(TAG,"we chat in");

}

@Override

public voidonResp(BaseResp baseResp) {

switch(baseResp.errCode) {

case  BaseResp.ErrCode.ERR_OK:

//分享成功

Toast.makeText(WXEntryActivity.this,R.string.share_success,Toast.LENGTH_SHORT).show();

break;

case  BaseResp.ErrCode.ERR_USER_CANCEL:

//分享取消

Toast.makeText(WXEntryActivity.this,R.string.share_cancel,Toast.LENGTH_SHORT).show();

break;

case  BaseResp.ErrCode.ERR_AUTH_DENIED:

Toast.makeText(WXEntryActivity.this,R.string.share_denied,Toast.LENGTH_SHORT).show();

break;

case  BaseResp.ErrCode.ERR_SENT_FAILED:

Toast.makeText(WXEntryActivity.this,R.string.share_send_failed,Toast.LENGTH_SHORT).show();

break;

case  BaseResp.ErrCode.ERR_UNSUPPORT:

Toast.makeText(WXEntryActivity.this,R.string.share_unsupport_error,Toast.LENGTH_SHORT)

.show();

break;

default:

Toast.makeText(WXEntryActivity.this,R.string.share_failed,Toast.LENGTH_SHORT).show();

break;

}

finish();

}

}

5、最后别忘记了在AndroidMainfest.xml里面注册:

android:name="WXEntryActivity"

android:configChanges="keyboardHidden|orientation|screenSize"

android:exported="true"

android:screenOrientation="portrait"

android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

写完手工,过两天他们告诉我appId申请下来了,填写进去,没问题,一切OK,我果然还是很厉害的,但是事情还没有结束,过了大概一个月他们突然告诉我微信分享不能用了。具体情况是朋友圈可以分享,微信好友分享的时候拉起好友列表以后发现好友列表点击无效。这时候我就不信了,不可能吧,要坏一起坏,要好一起好啊,坏一般啥意思,我代码又没动过,想不明白,这时候我开启了百度之旅。

还真找到了几个同样的问题:

友盟分享,点击微信分享,可以进入微信,也有微信好友,点击要分享的好友,不能成功,混淆什么都加了,不知道什么原因

这个问题困扰了我好久,微信和app都卸载了好几遍,但是一到微信好友界面就是点击后不能跳出弹框,朋友圈直接不能点开!!

最先感觉好像这个靠谱http://bbs.umeng.com/thread-13230-2-1.html是友盟官方论坛,说是没有混淆好,我就千辛万苦混淆了,可是。。。。。不行!!问题依然存在。

仔细看了好久,这是3月多的公告啊,我也没用精简版啊,不对不对,接着找。

这个就很像了和我的问题一模一样嘛,赶紧去加混淆,等等,不对,我就没开启混淆加什么加。

就这样困扰了一天,直到晚上睡觉前突然想到,代码我没动,应该没问题,微信那么吊,应该也不会有问题,是不是接口的锅,先到这里赶紧打开电脑 把所有分享信息写死,果然,成功了。

接着开始分析是哪里的问题吧仔细看看看分享的参数:

webpage.webpageUrl=url;

WXMediaMessagemsg=newWXMediaMessage(webpage);

msg.title=title;

msg.description=content;

//这里替换一张自己工程里的图片资源

Bitmapthumb=BitmapFactory.decodeResource(getResources(),R.mipmap.icon_share);

msg.setThumbImage(thumb);

SendMessageToWX.Reqreq=newSendMessageToWX.Req();

req.transaction= buildTransaction("webpage");

req.message=msg;

最终发现接口返回的title是空的,长见识了,原来title为空会导致这样的问题,在此记录一下,以后一定要谨记。

微信记录 android id,记录微信分享的一些坑相关推荐

  1. 开发(仿微信)Android日常记录(三)

    Android开发记录(三) 1.全局Toast怎么弄?有全局的上下文 2.使用github上的源码,得下个gitbash吧,需要个git.exe命令 3.PopupWindow实现QQ微信右上角菜单 ...

  2. android 微信 联系人,android高仿微信联系人选择

    如题,仿造微信联系人选择. 实现起来也是相当的简单. ChineseToEnglish为网上找的中文转拼音的类,  CompareSort是实现联系人list的排序类  SideBarView右侧的字 ...

  3. 微信开发(做海报图片分享遇到的坑)

    一.微信头像获取问题 首先需要了解file_get_contents 和 curl 之间的区别,请参考帖子. 二.使用curl 获取用户头像 $ch = curl_init();curl_setopt ...

  4. android调用微信程序,Android如何测试微信小游戏小程序?

    "微信小游戏性能评测标准建立的初衷是希望能引导开发者优化相关性能数据,提升用户体验.评测标准根据小游戏整体的性能数据表现.玩家体验评价,结合操作系统.机型分档.网络条件等多种维度建立.&qu ...

  5. 【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏

    开始前,请先完成圆梦宝典中宫格导航的开发,详见 [微信小程序-原生开发]实用教程 07 - Grid 宫格导航,详情页,侧边导航(含自定义页面顶部导航文字) https://blog.csdn.net ...

  6. android studio微信界面设计,android studio开发微信界面

    android studio开发微信界面 android studio开发微信界面 功能说明:主要是做微信的简单的聊天界面,利用Fragment,进行微信界面的跳转 项目代码: 源代码地址 MainA ...

  7. 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录

    2019独角兽企业重金招聘Python工程师标准>>> 微信 Tinker 负责人张绍文关于 Android 热修复直播分享记录 来源:微信技术团队的公众号WeMobileDev 热 ...

  8. android 微信分享 源码,记录Android微信分享功能的吐槽与思考

    在App内潜入分享到微信好友或朋友圈的功能想必大家已经屡见不鲜了,比如Android分享一个网页信息(URL)到微信客户端的代码: /** * 微信分享:分享网页 * @param context * ...

  9. android 开发微信群发,Android 记录一次开发微信分享功能的吐槽与思考

    在App内潜入分享到微信好友或朋友圈的功能想必大家已经屡见不鲜了,比如Android分享一个网页信息(URL)到微信客户端的代码: /** * 微信分享:分享网页 * @param context * ...

最新文章

  1. Apache Shiro 使用手册
  2. 介绍一款比Android原生模拟器还要快的模拟器Genymotion(转)
  3. 代码分析:NASM源码阅读笔记
  4. 本题主要考查指针与数组
  5. [C#][Newtonsoft.Json] Newtonsoft.Json 序列化时的一些其它用法
  6. 牛客2021年愚人节比赛 【题解】
  7. 力扣:169. 多数元素
  8. Qt对象类型转换(char* int与Qstring间的转换)
  9. cudaMemcpyToSymbol使用
  10. 工业相机硬汉!这款相机被NASA选择,全程记录毅力号登陆火星
  11. 数据结构与算法之单链表(1)
  12. 网易云音乐的焦虑 暗藏在上市后的首份财报里
  13. 计算机图形和ps的区别,PS CC和PS CC有什么区别?
  14. 2018年全国国家级自然保护区功能区划空间分布
  15. 达梦数据库的替代(instead of )触发器使用一例
  16. uniapp+极光做消息推送
  17. 化工单元操作概念汇总
  18. 十大蓝牙操作实例,助你深入解析蓝牙技术应用
  19. 小微商户进件php,【微信支付】小微商户进件 接口分析与源码实现
  20. ISA Server是什么

热门文章

  1. 大班体育电子计算机,幼儿园大班体育活动课件大全
  2. 在Parallels Desktop的虚拟机中如何使用网银
  3. [Gource可视化]魔兽世界玩家成就动态演示
  4. 大数据DTSpark蘑菇云行动之 第一课:Scala语言开发环境搭建
  5. 39.纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效
  6. java 钩子方法_java中钩子方法的概念
  7. 自我介绍以及对软件工程课程的看法
  8. 法国数学_法国雪崩的危险
  9. 谷歌/Chrome浏览器如何让搜索结果在新标签页中打开?
  10. Spring源码篇一之beanFactory的真身和6大后置处理器的注册