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;@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是个缓冲动画。可要可不要。可用你的缓冲动画

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415149.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ERA5、ERA-interm是啥

ERA5是欧洲中期天气预报中心最新产品。 ERA-Interim 是再分析数据&#xff0c;提供两套数据&#xff0c;一个是同化分析数据&#xff0c;一个是预报数据。分析数据&#xff0c;6小时的时间间隔&#xff0c;每12小时循环一次。例如&#xff0c;0 UTC 开始&#xff0c;6 UTC&…

Liunx 重定向,管道符(转)

原作网址&#xff1a;http://blog.csdn.net/qq_16811963/article/details/52997178 输出重定向 >代表以覆盖的方式将命令的正确输出输出到指定的文件或设备当中。 >>代表以追加方式输出。 常用的输出重定向&#xff1a; 1.命令 >> 文件 2>&1 :以追加的方…

使用run-rs启动mongodb

为什么需要&#xff1a; 因为在mac上直接使用社区版&#xff0c;进行备份数据导入时&#xff0c;会报错&#xff1a; MongoError: Transaction numbers are only allowed on a replica set member or mongos run-rs可以零配置启动mongodb 1、npm install run-rs -g 2、run…

Android Handler机制

1.什么是Handler&#xff1f; Handler是可以通过发送和处理Message和Runnable对象来关联相应线程的MessageQueue。通常我们认为它是一种异步机制。 a.可以让对应的Message和Runnable在未来的某个时间点进行相应的处理。 b.让自己想要的耗时操作在子线程中完成&#xff0c;让更新…

你的鼠标有多快-小游戏

HTML <div class"box"><h3>你的鼠标有多快&#xff1f;</h3><p>游戏说明&#xff1a;点击开始游戏&#xff0c;随机掉下QQ表情&#xff0c;点中它&#xff0c;千万别让它掉下去&#xff01;&#xff01;</p><input type"butto…

input文件上传代码片段

需求&#xff1a;自己留个记录 <div class"button—2" click"uploadFile"><input type"file" ref"file" multiple"multiple" change"fileChange" style"display:none">上传</div>as…

android图片查看器,实现图片加载进度监听,实现保存图片

1、添加依赖 implementation com.github.bumptech.glide:glide:4.6.1 compile com.github.chrisbanes:PhotoView:2.0.0 compile com.squareup.okhttp3:okhttp:3.9.0 2、实现fragmentactivity&#xff1a; /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;131647168…

iPhone X Web 设计

iPhone X Web 设计 原文地址&#xff1a;https://webkit.org/blog/7929/designing-websites-for-iphone-x/ 开箱即用(开发者无需进行任何设置)&#xff0c;在iPhone X中&#xff0c;Safari 就可以完美的在全面屏上显示你既有的网站。网页内容会自动插入到显示的安全区域以至于不…

python 文件读取报错 ‘utf-8‘ codec can‘t decode

初学python遇到一个文件读取遇到问题 utf-8 codec cant decode byte 0xb0 in position 611我报错的写法 with open(filename,r) as f:LISTf.readlines()实际问题是我的电脑默认读取编码为utf-8,但是文件的编码为gbk,只要指定好编码为gbk就OK。 with open(filename,r,encodin…

Android 屏幕灭屏亮屏广播,屏幕灭屏亮屏监听,广播实现按键监听

service 类注册广播进行监听 /*** 作者&#xff1a;created by meixi* 邮箱&#xff1a;13164716840163.com* 日期&#xff1a;2018/9/27 09*/ public class Serview extends Service {/*** 广播接受者*/private BroadcastReceiver mBatInfoReceiver;private String TAG &quo…

python WindroseAxes 报错 has no attribute ‘Appender‘

引用代码 from windrose import WindroseAxes报错&#xff1a;module matplotlib.docstring has no attribute Appender 问题是我目前安装的python 3.8&#xff0c;windrose也要安装最新的。 安装方法 第一种&#xff1a; pip install githttps://github.com/python-windr…

[转载] 我的WafBypass之道(SQL注入篇)

我的WafBypass之道&#xff08;SQL注入篇&#xff09; Web安全 作者&#xff1a;先知技术社区 2016-11-23 7,566【本文转自安全脉搏战略合作伙伴先知技术社区 原帖地址 安全脉搏编辑huan9740整理发布】 0x00 前言 去年到现在就一直有人希望我出一篇关于waf绕过的文章&#xf…

Android 设置系统闹钟,日历写入。实现demo

实现方法1——代码闹钟 可变时间格式&#xff1a;"yyyy-MM-dd HH:mm:ss" 保存闹钟时间&#xff1a; SimpleDateFormat df new SimpleDateFormat("HH:mm");//设置日期格式 String thistime df.format(new Date()); SharedPreferences sharedPreferenc…

centos 安装 fortran

1、 yum install gcc-c2、 yum install gcc-gfortran

前端学习(2677):懂代码之表格BaseTable删除操作

1第一步 <el-table-column label"操作" width"180" align"center"><template slot-scope"scope"><el-buttontype"text"icon"el-icon-edit"click"handleEdit(scope.$index, scope.row)"&…

Linux之Ubuntu下安装屏幕录像软件(SimpleScreenRecorder)【摘抄】

本博文全文属于摘抄自&#xff1a; (见文末处参考文献)(由于担心原博文丢失&#xff0c;以后查找不到&#xff0c;故此原文摘抄&#xff0c;以备日后多次查阅) 在日常工作中&#xff0c;有时需要对屏幕进行录像&#xff0c;以制作讲解文档等。下面介绍在Linux上安装屏幕录像软件…

Android精准计步器

demo链接&#xff1a;https://download.csdn.net/download/meixi_android/10690974 工具类&#xff1a; public class StepDetector implements SensorEventListener {//存放三轴数据float[] oriValues new float[3];final int ValueNum 4;//用于存放计算阈值的波峰波谷差值…