ShareSdk中分享失败时,根据不同的平台,提示不同的失败信息
2015-12-02 10:48
453 查看
项目中有需求让根据不同的分享平台提示不同的信息,下面就给大家分享一下。
首先我们需要实现PlatformActionListener这个类(这是ShareSdk中的),然后重写onError方法,因为分享失败就会走onError方法,在这个方法里面可以拿到platform这个类,通过这个类可以获取到平台的名字,然后通过msg可以发送消息,并在handler判断是否失败,失败后是哪个平台,并提示不同的信息,下面上代码。
1、在你的类中实现PlatformActionListener这个类
2、在你的类中重写onError方法,shareFailName就是获取到的平台的名字
3、在handlMessage这个方法中进行判断(这个方法,是实现了Handler.CallBack这个回调,我是在基类中实现的,所以直接重写即可),蓝色加粗的地方就是判断是哪个平台。
运行后,就可以看到不同平台,失败后不同的提示信息了
首先我们需要实现PlatformActionListener这个类(这是ShareSdk中的),然后重写onError方法,因为分享失败就会走onError方法,在这个方法里面可以拿到platform这个类,通过这个类可以获取到平台的名字,然后通过msg可以发送消息,并在handler判断是否失败,失败后是哪个平台,并提示不同的信息,下面上代码。
1、在你的类中实现PlatformActionListener这个类
package cn.sharesdk.framework; import cn.sharesdk.framework.Platform; import java.util.HashMap; public interface PlatformActionListener { void onComplete(Platform var1, int var2, HashMap<String, Object> var3); void onError(Platform var1, int var2, Throwable var3); void onCancel(Platform var1, int var2); }
2、在你的类中重写onError方法,shareFailName就是获取到的平台的名字
@Override public void onError(Platform platform, int action, Throwable t) { // 打印错误信息,print the error msg t.printStackTrace(); // 错误监听,handle the error msg Message msg = new Message(); msg.what = MSG_ACTION_CCALLBACK; msg.arg1 = 2; msg.arg2 = action; shareFailName = platform.getName(); msg.obj = t; UIHandler.sendMessage(msg, this); }
3、在handlMessage这个方法中进行判断(这个方法,是实现了Handler.CallBack这个回调,我是在基类中实现的,所以直接重写即可),蓝色加粗的地方就是判断是哪个平台。
@Override public boolean handleMessage(Message msg) { switch (msg.what) { case MSG_TOAST: { String text = String.valueOf(msg.obj); Toast.makeText(this, text, Toast.LENGTH_SHORT).show(); } break; case MSG_ACTION_CCALLBACK: { switch (msg.arg1) { case 1: // 成功提示, successful notification ToastManager.showShortToast("分享成功"); break; case 2: // 失败提示, fail notification if(Wechat.NAME.equals(sharaFailName) || WechatMoments.NAME.equals(shareFailName)){ ToastManager.showShortToast("手机中未安装微信"); }else{ ToastManager.showShortToast("分享失败"); } break; case 3: // 取消提示, cancel notification ToastManager.showShortToast("取消分享"); break; } } break; case MSG_CANCEL_NOTIFY: { NotificationManager nm = (NotificationManager) msg.obj; if (nm != null) { nm.cancel(msg.arg1); } } break; } return false; }
运行后,就可以看到不同平台,失败后不同的提示信息了
相关文章推荐
- Linux下查看和添加PATH环境变量
- Android移动图片到指定位置
- EasyTouch与UGUI的结合
- xargs 命令
- ArrayList与LinkedList的区别
- 在一维数组中查找某个元素出现的次数
- Maven学习总结(一)——Maven入门
- grails 统一认证加单点登录
- 又是数据库服务器IO高引起的问题
- 逻辑回归模型和算法
- VS每次编译都重新编译整个工程的解决方案
- 计算机连不上网的总结
- objc/runtime.h 查看私有api
- LeetCode--H-Index
- Java if 判断
- 整理Javascript事件响应学习笔记
- Hibernate的dialect大全
- js页面跳转整理
- JMeter压力测试入门教程[图文]
- boost::asio译文