写微信分享的时候想着挺简单的,写了一半出现的错误分享出来。
第一个:
使用BottomDialog实现底部弹框的时候出现:
java.lang.NoClassDefFoundError
本来想着使用这个框架很快就实现了弹框的功能,代码就那几行,加入compile 'top.zibin:BottomDialog:1.0.4'
超级简单,但是出现这个问题找了两三个小时到快放弃,一直在网上查找别人出现问题的解决办法,无果。。第二天早上来的时候突然看到框架里面有报错,原来里面使用到一个recycle包,然后在build gradle添加compile 'com.android.support:recyclerview-v7:25.0.1'
问题成功解决啦~
第二个:
使用微信支付分享网页的时候点击一直没有反应,然后试了一下分享文字和图片都可以分享成功,只有网页的时候分享不成功。
解决办法:把分享网页的缩略图不能超过32K,问题成功解决。
总结经验:出现问题不要陷到自己认为错误的怪圈,可能出来溜达一圈或者吃个饭再回来看问题,一眼就出来了。哈哈,省时省力的办法。
再分享一个在网上找的封装微信分享的包,拿来直接用。
WechatShareManager:
public class WechatShareManager {
private static final int THUMB_SIZE = 150;
public static final int WECHAT_SHARE_WAY_TEXT = 1; //文字
public static final int WECHAT_SHARE_WAY_PICTURE = 2; //图片
public static final int WECHAT_SHARE_WAY_WEBPAGE = 3; //链接
public static final int WECHAT_SHARE_WAY_VIDEO = 4; //视频
public static final int WECHAT_SHARE_TYPE_TALK = SendMessageToWX.Req.WXSceneSession; //会话
public static final int WECHAT_SHARE_TYPE_FRENDS = SendMessageToWX.Req.WXSceneTimeline; //朋友圈
private static WechatShareManager mInstance;
private ShareContent mShareContentText, mShareContentPicture, mShareContentWebpag, mShareContentVideo;
private IWXAPI mWXApi;
private Context mContext;
public WechatShareManager(Context context){
this.mContext = context;
//初始化数据
//初始化微信分享代码
initWechatShare(context);
}
/**
* 获取WeixinShareManager实例
* 非线程安全,请在UI线程中操作
* @return
*/
public static WechatShareManager getInstance(Context context){
if(mInstance == null){
mInstance = new WechatShareManager(context);
}
return mInstance;
}
private void initWechatShare(Context context){
if (mWXApi == null) {
mWXApi = WXAPIFactory.createWXAPI(context, ApiUtils.WX_ID, true);
}
mWXApi.registerApp(ApiUtils.WX_ID);
}
/**
* 通过微信分享
* @param shareWay 分享的方式(文本、图片、链接)
* @param shareType 分享的类型(朋友圈,会话)
*/
public void shareByWebchat(ShareContent shareContent, int shareType){
switch (shareContent.getShareWay()) {
case WECHAT_SHARE_WAY_TEXT:
shareText(shareContent, shareType);
break;
case WECHAT_SHARE_WAY_PICTURE:
sharePicture(shareContent, shareType);
break;
case WECHAT_SHARE_WAY_WEBPAGE:
shareWeb