赞
踩
刚好项目中遇到了需要通过第三方微信分享,需要用过友盟的平台(因为之前用的事ShareSDK),去看了一下官方文档,顺便记录一下问题和一些分享的细节。
1,添加一些jar包(只需要去官方下载,没有什么大问题),因为我们公司只需要微信分享,朋友圈和qq空间,所以我下载的都是精简版的
2,需要建一个回调的类,记得要继承
WXCallbackActivity,其中一定要注意com.XXXX.weixin.callback.WXCallbackActivity;导入的包要正确
3,准备工作做完上代码
点击事件之后:new ShareAction(InformationDetailedActivity.this) .withText("hello22") //文本 .setPlatform(SHARE_MEDIA.WEIXIN)//分享平台 .setCallback(shareListener) .share();
监听事件:4,我之前是一直遇到签名有问题,用这个来debug来验证,要在Mainfest中的application 的name中添加哦private UMShareListener shareListener = new UMShareListener() { /** * @descrption 分享开始的回调 * @param platform 平台类型 */ @Override public void onStart(SHARE_MEDIA platform) { Log.i("TAG", "onStart: " + "KAISHI LE "); SocializeUtils.safeShowDialog(dialog); } /** * @descrption 分享成功的回调 * @param platform 平台类型 */ @Override public void onResult(SHARE_MEDIA platform) { Toast.makeText(InformationDetailedActivity.this, "成功了", Toast.LENGTH_LONG).show(); SocializeUtils.safeCloseDialog(dialog); } /** * @descrption 分享失败的回调 * @param platform 平台类型 * @param t 错误原因 */ @Override public void onError(SHARE_MEDIA platform, Throwable t) { SocializeUtils.safeCloseDialog(dialog); Toast.makeText(InformationDetailedActivity.this, "失败" + t.getMessage(), Toast.LENGTH_LONG).show(); } /** * @descrption 分享取消的回调 * @param platform 平台类型 */ @Override public void onCancel(SHARE_MEDIA platform) { SocializeUtils.safeCloseDialog(dialog); Toast.makeText(InformationDetailedActivity.this, "取消了", Toast.LENGTH_LONG).show(); } };要注意了:添加回调事件//返回值 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); }
public class APP extends Application { @Override public void onCreate() { super.onCreate(); Config.DEBUG = true;//是否开启 QueuedWork.isUseThreadPool = false; UMShareAPI.get(this); } //各个平台的配置,建议放在全局Application或者程序入口 { PlatformConfig.setWeixin("KEY", "签名"); //微信 appid appsecret PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");// QQ和Qzone appid appkey PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com"); //新浪微博 appkey appsecret } }
最后的最后:最值得注意是,如果你的代码没有错,但是回调的方法只执行了onStart()方法,就闪退了,不要意外,那说明是你的签名有问题。值得一提的是,我之前签名验证都没有问题,但是一直走不通,原来是微信开发者平台包名之前改了,需要去重新验证。切记啊!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。