1、build.gradle下添加微信sdk依赖
compile ('com.xyzlf.share:sharesdk:0.0.10') {exclude group: 'com.android.support', module: 'appcompat-v7' }
2、MainActivity文件夹下创建wxapi文件夹WXEntryActivity类,并配置到manifest里面:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {private IWXAPI api;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);api = WXAPIFactory.createWXAPI(this, ManifestUtil.getWeixinKey(this), false);api.handleIntent(getIntent(), this);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {}@Overridepublic void onResp(BaseResp resp) {Intent intent = new Intent();intent.setAction(ShareConstant.ACTION_WEIXIN_CALLBACK);intent.putExtra(ShareConstant.EXTRA_WEIXIN_RESULT, resp.errCode);sendBroadcast(intent);finish();} }
<!-- 微信分享注册 --> <activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
3、分享工具类,这里注册 微信开放平台 的AppID,即可分享
/*** 作者:created by meixi* 邮箱:13164716840@163.com* 日期:2018/9/20 08*/public class ShareUtil {public static int SHARE_WX_FRIEND = 1;//分享给微信好友public static int SHARE_WX_CIRCLE = 2;//分享到朋友圈public static int SHARE_WEI_BO = 3;public static int SHARE_QQ = 4;private static final int THUMB_SIZE = 150;private static final String strDreamUrl = "http://api.zhenhuaonline.com/home/share/dream?id=";private static final String strZhenHuaUrl = "http://www.zhenhuaonline.com/app";private static ShareUtil INSTANCE;/*** 微信API*/private static IWXAPI apiWX;/*** 微博分享的接口实例*/ // private static IWeiboShareAPI mWeiboShareAPI;private static int nDreamID;/*** qq*/private static Tencent mTencent;private static Activity activity;private int nShareType;//标题private String strTitle;//详情private String strDetail;//图片地址URLprivate String strImageUrl;public static ShareUtil getInstance(Activity activity, int nDreamID) {Log.v("lg","分享。。。。。ShareUtil getInstance(Activity activity, int nDreamID) ");if (INSTANCE == null)INSTANCE = new ShareUtil();ShareUtil.activity = activity;ShareUtil.nDreamID = nDreamID;init();return INSTANCE;}public static ShareUtil getMap(Activity activity,Bitmap bitmap){return INSTANCE;}private static void init() {apiWX = WXAPIFactory.createWXAPI(activity, "wxe6be244abe90a087");//换为你AppID即可Log.i("lgq","....7777777777777..="+apiWX); // apiWX.registerApp("wxe6be244abe90a087");// 创建微博 SDK 接口实例 // mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(activity, ThirdKey.WB_APP_KEY);// 注册到新浪微博 // mWeiboShareAPI.registerApp();// mTencent = Tencent.createInstance(ThirdKey.QQ_APP_ID, activity);}/*** 获取微信API*/public static IWXAPI getApiWX() {return apiWX;}/*** 获取微博API*/ // public static IWeiboShareAPI getmWeiboShareAPI() { // return mWeiboShareAPI; // }/*** 设置标题*/public ShareUtil setTitle(String strTitle) {INSTANCE.strTitle = strTitle;return INSTANCE;}/*** 设置内容*/public ShareUtil setDetail(String strDetail) {INSTANCE.strDetail = strDetail;return INSTANCE;}/*** 设置图片地址*/public ShareUtil setImageUrl(String strImageUrl) {INSTANCE.strImageUrl = strImageUrl;return INSTANCE;}/*** 设置分享类型*/public ShareUtil setShareType(int nShareType) {INSTANCE.nShareType = nShareType;return INSTANCE;}public void share(More_LoadDialog loadingDialog) {Log.i("lg","分享。。。。。ShareUtil++++share(LoadingDialog loadingDialog)");if (nShareType == SHARE_WX_CIRCLE || nShareType == SHARE_WX_FRIEND) {shareWX(loadingDialog);} else if (nShareType == SHARE_WEI_BO) { // shareWB(loadingDialog);} else if (nShareType == SHARE_QQ) { // shareQQ(loadingDialog);}}/*** 微信分享*/private void shareWX(More_LoadDialog loadingDialog) {if (apiWX.isWXAppInstalled()) {loadingDialog.show();Log.i("lg","微信分享。。。。。111111111");// 构造一个ReqSendMessageToWX.Req req = new SendMessageToWX.Req();WXMediaMessage msg = new WXMediaMessage(new WXWebpageObject(nDreamID == 0 ? strZhenHuaUrl : strDreamUrl + String.valueOf(nDreamID)));//分享链接msg.description = nShareType == SHARE_WX_CIRCLE ? activity.getString(R.string.app_name) : strDetail;//分享描述msg.title = nShareType == SHARE_WX_CIRCLE ? strDetail : activity.getString(R.string.app_name);//分享标题,(应用名称)msg.setThumbImage(BitmapFactory.decodeResource(activity.getResources(), R.mipmap.em_dx_checkbox_on));//分享图片Log.i("lg", "微信分享。。。。。222222221");req.transaction = buildTransaction(activity.getPackageName()); // transaction字段用于唯一标识一个请求req.message = msg;req.scene = nShareType == SHARE_WX_CIRCLE ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;Log.i("lg","微信分享。。。。。3333333");apiWX.sendReq(req);} else{ // ToastUtil.showToastShort(R.string.error_third_no_wechat);}}/*** 分享到微博*/ // private void shareWB(LoadingDialog loadingDialog) { // if (mWeiboShareAPI.isWeiboAppInstalled() && mWeiboShareAPI.getWeiboAppSupportAPI() >= 10351) { // loadingDialog.show(); // // WeiboMultiMessage weiboMessage = new WeiboMultiMessage(); // // TextObject textObject = new TextObject(); // textObject.text = strDetail + (nDreamID == 0 ? strZhenHuaUrl : strDreamUrl + String.valueOf(nDreamID)); // // weiboMessage.textObject = textObject; // SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest(); // request.transaction = String.valueOf(System.currentTimeMillis()); // request.multiMessage = weiboMessage; // // 3. 发送请求消息到微博,唤起微博分享界面 // mWeiboShareAPI.sendRequest(activity, request); // } else // ToastUtil.showToastShort(R.string.error_third_no_weibo); // }private String buildTransaction(final String type) {return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();}/*** QQ分享*/ // private void shareQQ(More_LoadDialog loadingDialog) { // Log.v("lg","分享。。。。。ShareUtil++++shareQQ(LoadingDialog loadingDialog)"); // final Bundle params = new Bundle(); // params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT); // params.putString(QQShare.SHARE_TO_QQ_TITLE, activity.getString(R.string.app_name)); // params.putString(QQShare.SHARE_TO_QQ_SUMMARY, strDetail); // params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, nDreamID == 0 ? strZhenHuaUrl : strDreamUrl + String.valueOf(nDreamID)); // params.putString(QQShare.SHARE_TO_QQ_APP_NAME, activity.getString(R.string.app_name)); // // //监听 // IUiListener uiListener = new IUiListener() { // @Override // public void onComplete(Object o) { // ToastUtil.showToastShort(R.string.errcode_success); // } // // @Override // public void onError(UiError uiError) { // ToastUtil.showToastShort(R.string.errcode_deny); // } // // @Override // public void onCancel() { // ToastUtil.showToastShort(R.string.errcode_cancel); // } // }; // // if (mTencent.isSupportSSOLogin(activity)) { // loadingDialog.show(); // mTencent.shareToQQ(activity, params, uiListener); // } else // ToastUtil.showToastShort(R.string.error_third_no_qq); // }/*** 系统分享** @param mContext* @param strDetail*/public static void systemShare(Context mContext, String strDetail) {Intent sendIntent = new Intent();sendIntent.setAction(Intent.ACTION_SEND);sendIntent.putExtra(Intent.EXTRA_TEXT, strDetail + "\n" + strZhenHuaUrl);sendIntent.setType("text/plain");mContext.startActivity(sendIntent);}}
4、起调微信分享
String strTinyCreate = "分享一个微创业\n" ; ShareUtil.getInstance(AddwcrrActivity.this, 0).setDetail(strTinyCreate).setShareType(ShareUtil.SHARE_WX_FRIEND).share(more_loadDialog);
5、说明:
More_LoadDialog是个缓冲动画。可要可不要。可用你的缓冲动画