Android 集成微信分享2,实现微信分享

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;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this, ManifestUtil.getWeixinKey(this), false);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

    @Override
    public void onReq(BaseReq req) {

    }

    @Override
    public 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();
    }
}
<!-- 微信分享注册 -->
<activity
    android: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
 * 邮箱:[email protected]
 * 日期: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;
    //图片地址URL
    private 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");
            // 构造一个Req
            SendMessageToWX.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是个缓冲动画。可要可不要。可用你的缓冲动画

猜你喜欢

转载自blog.csdn.net/meixi_android/article/details/82786587