Umeng微信、朋友圈分享
2015-11-20 15:05
489 查看
1.注册友盟账号,添加新应用,获取APPKEY.
2.下载最新的分享sdk http://dev.umeng.com/social/android/quick-integration
3.
将main和platforms里面的jar包和资源文件 放入新建 的程序中。
放好后如下图:
4.在清单文件AndroidMainfest.xml中添加如下代码:
5.在mainActivity的oncreate中添加如下方法
6.友盟分享的UI界面可以用友盟自带的也可以自己布局。
友盟布局:
自定义:
7. 设置分享监听器,可以监听用户分享状态
8.自定义界面用户点击分享到微信或朋友圈相应的操作:
以上代码就可以实现微信分享功能,经过测试分享内容需要包含图片才能有title和跳转url。
既然是微信分享,想要实现分享功能,还需要在微信开发平台注册分享的权限。在微信平台申请要注意:应用签名要改为小写并且去掉:即:AB:1E 变为:ab1e,否则分享总会提示失败
2.下载最新的分享sdk http://dev.umeng.com/social/android/quick-integration
3.
将main和platforms里面的jar包和资源文件 放入新建 的程序中。
放好后如下图:
4.在清单文件AndroidMainfest.xml中添加如下代码:
<!-- ###################声明SDK使用的相关权限###################### --> <!-- 检测网络状态 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取mac地址作为用户的备用唯一标识 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取用户手机的IMEI,用来唯一的标识用户 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 缓存资源优先存入SDcard --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允许应用程序联网,以便向我们的服务器端发送数据 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- QQ、QQ空间所需权限 --> <uses-permission android:name="android.permission.GET_TASKS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.wxshare.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- ###################注册SDK使用的Activity###################### --> <!-- 分享编辑页 --> <activity android:name="com.umeng.socialize.view.ShareActivity" android:configChanges="orientation|keyboard" android:launchMode="singleTask" android:noHistory="true" android:theme="@style/Theme.UMDialog" android:windowSoftInputMode="stateVisible|adjustResize" > </activity> <!-- ############ QQ空间和QQ SSO授权的Activity注册 ############ --> <activity android:name="com.tencent.tauth.AuthActivity" android:launchMode="singleTask" android:noHistory="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <!-- 100424468,如果你使用的公用账号,则不需要修改;否则修改成你在QQ开放平台申请的 APP ID --> <data android:scheme="tencent100424468" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" > </activity> <!-- ###################添加UmengAppkey###################### --> <meta-data android:name="UMENG_APPKEY" android:value="你的友盟appkey" > </meta-data> </application>
5.在mainActivity的oncreate中添加如下方法
private void umengShareInit() { //0.微信分享步骤 //1.首先在您的Activity中添加如下成员变量 mController = UMServiceFactory.getUMSocialService("com.umeng.share"); //2.wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID appId = "<span style="font-family: Arial, Helvetica, sans-serif;">微信开发平台注册应用的AppID</span>"; appSecret = "微信开发平台的appSecret"; //3.添加支持微信平台 UMWXHandler wxHandler = new UMWXHandler(this,appId,appSecret); wxHandler.addToSocialSDK(); //3.1支持微信朋友圈 UMWXHandler wxCircleHandler = new UMWXHandler(this,appId,appSecret); wxCircleHandler.setToCircle(true); wxCircleHandler.addToSocialSDK(); }
6.友盟分享的UI界面可以用友盟自带的也可以自己布局。
友盟布局:
/** * 友盟自定义UI */ private void showUmengUI() { //4.移除无用的分享图标 mController.getConfig().removePlatform( SHARE_MEDIA.RENREN, SHARE_MEDIA.QZONE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA,SHARE_MEDIA.TENCENT); mController.openShare(this, false); //5.设置微信好友分享内容 WeiXinShareContent weixinContent = new WeiXinShareContent(); //设置分享文字 weixinContent.setShareContent("如果你是创业者,那来这里。。。;如果你是投资者,那来这里。。。"); //设置title weixinContent.setTitle("测试标题"); //设置分享内容跳转URL weixinContent.setTargetUrl("https://www.baidu.com/"); //设置分享图片 UMImage localImage=new UMImage(this,R.drawable.ic_launcher); weixinContent.setShareImage(localImage); //6.分享 mController.setShareMedia(weixinContent); //5.1设置微信朋友圈分享内容 CircleShareContent circleMedia = new CircleShareContent(); circleMedia.setShareContent("如果你是创业者,那来这里。。。;如果你是投资者,那来这里。。。"); //设置朋友圈title circleMedia.setTitle("测试标题"); circleMedia.setShareImage(localImage); circleMedia.setTargetUrl("https://www.baidu.com/"); //6.分享 mController.setShareMedia(circleMedia); }
自定义:
/** * 显示您的自定义界面,当用户点击一个平台时,直接调用directShare或者postShare来分享. */ protected void showCustomUI(final boolean isDirectShare) { View pw_share = LayoutInflater.from(this).inflate(R.layout.pw_share, null); ImageView iv_wxchat = (ImageView) pw_share.findViewById(R.id.iv_wxchat); ImageView iv_wxcircle = (ImageView) pw_share.findViewById(R.id.iv_wxcircle); iv_wxchat.setOnClickListener(this); iv_wxcircle.setOnClickListener(this); new AlertDialog.Builder(this).setView(pw_share).create().show(); }
7. 设置分享监听器,可以监听用户分享状态
/** * 分享监听器 */ mShareListener = new SnsPostListener() { @Override public void onStart() { Log.i("启动分享", "----------------------"); } @Override public void onComplete(SHARE_MEDIA platform, int stCode, SocializeEntity entity) { if (stCode == 200) { Log.i("分享成功", "----------------------"); } else { Log.i("分享失败", "----------------------"); } } };
8.自定义界面用户点击分享到微信或朋友圈相应的操作:
case R.id.iv_wxchat: // 获取用户点击的平台 platform =SHARE_MEDIA.WEIXIN; if (isDirectShare) { // 调用直接分享 //设置微信好友分享内容 WeiXinShareContent weixinContent = new WeiXinShareContent(); //设置分享文字 weixinContent.setShareContent("内容测试数据,那来这里。。。;内容测试数据,那来这里。。。"); //设置title weixinContent.setTitle("标题测试数据"); //设置分享内容跳转URL weixinContent.setTargetUrl("https://www.baidu.com/"); //设置分享图片 UMImage localImage=new UMImage(this,R.drawable.umeng_socialize_wechat); weixinContent.setShareImage(localImage); //分享 mController.setShareMedia(weixinContent); mController.directShare(this, platform, mShareListener); } else { // 调用直接分享, 但是在分享前用户可以编辑要分享的内容 mController.postShare(this, platform, mShareListener); } break; case R.id.iv_wxcircle: // 获取用户点击的平台 platform =SHARE_MEDIA.WEIXIN_CIRCLE; if (isDirectShare) { // 调用直接分享 //5.1设置微信朋友圈分享内容 CircleShareContent circleMedia = new CircleShareContent(); circleMedia.setShareContent("内容测试数据,那来这里。。。;内容测试数据,那来这里。。。"); //设置朋友圈title circleMedia.setTitle("标题测试数据"); UMImage localImage=new UMImage(this,R.drawable.umeng_socialize_wxcircle); circleMedia.setShareImage(localImage); circleMedia.setTargetUrl("https://www.baidu.com/"); //6.分享 mController.setShareMedia(circleMedia); mController.directShare(this, platform, mShareListener); } else { // 调用直接分享, 但是在分享前用户可以编辑要分享的内容 mController.postShare(this, platform, mShareListener); } break;
以上代码就可以实现微信分享功能,经过测试分享内容需要包含图片才能有title和跳转url。
既然是微信分享,想要实现分享功能,还需要在微信开发平台注册分享的权限。在微信平台申请要注意:应用签名要改为小写并且去掉:即:AB:1E 变为:ab1e,否则分享总会提示失败
相关文章推荐
- 微信开发问题
- 手机直接分享链接到微信
- 微信扫描二维码返回XML
- 微信界面
- 微信公众号新浪百度云做服务器
- SQL 去除某个字段的重复信息 QQ、微信附近的人实现算法
- 仿微信界面
- C# 微信公众平台开发(3)-- 接受/发送消息
- 微信参数说明-access_token
- 微信红包实现原理
- 微信支付开发IOS图文教程案例
- 出国旅游也能用微信买单了
- Android 仿微信Activity左右切换 【全局配置Activity显示动画】
- Android 高仿微信群聊头像
- Android ActionBar应用实战,高仿微信主界面的设计
- 手机微信发语音没有声音
- 带三方登录(qq,微信,微博)
- 在做微信支付遇到的问题总结 php
- 微信卖豪宅 腾讯自身体系落后于模式迭进
- iOS 微信支付如果遇到跳转只有一个确定请看这里