Android:Umeng(友盟) 微信,QQ,新浪分享 (三)
第一步:
下载并安装SDK
添加代码和资源引用,我们提供了添加资源文件和jar文件的两种方式,可以根据需求选择
解压SDK压缩包,将文件夹中的'main/libs'和'main/res'文件夹复制到你的项目工程根目录下(如使用'ADT 17'以下用户需要手动添加'libs'下的jar文件到工程Path中)
结合上两篇文章 PushSDKMoudle中添加QQ,微信,新浪分享后的libs结构:
注:除jar包外,其余文件夹均需添加对应分享的so包。没有则不添加,附图:
第二步:
AndroidManifest配置:
<!-- 分享--><activityandroid:name="com.umeng.socialize.editorpage.ShareActivity"android:theme="@style/Theme.UMDefault"android:excludeFromRecents="true"/>
增加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
针对不平台所需要添加的数据
按照自己需要的平台添加对应的配置,如下图,其余请参考官方文档:
微信平台
<activityandroid:name="com.umeng.soexample.wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
注 :打包后的apk文件签名必须与 微信平台 设置一致
WXEntryActivity需建在wxapi的目录下,该类继承自WXCallbackActivity,预留空类即可,如图:
<!-- 微信分享 --><activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
public class WXEntryActivity extends WXCallbackActivity
{}
QQ、Qzone
<activityandroid: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" />
<data android:scheme="tencentAPPID" />
</intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
注: 将Android manifest xml里的 腾讯平台APPID替换为自己申请的APPID,注意tencent前缀不要修改,否则无法正常实现QQ及Qzone登录
新浪微博
<activityandroid:name=".WBShareActivity"android:configChanges="keyboardHidden|orientation"android:screenOrientation="portrait" ><intent-filter><action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" /><category android:name="android.intent.category.DEFAULT" /></intent-filter></activity>
<activityandroid:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"android:configChanges="keyboardHidden|orientation"android:windowSoftInputMode="adjustResize"android:exported="false" ></activity><service android:name="com.sina.weibo.sdk.net.DownloadService"android:exported="false"></service>
注:这里的DownloadService亮红不影响程序编译运行,不需要处理
同微信注册相同,在你的工程应用包名的相应目录下新增一个WBShareActivity
类,该类继承自WBShareCallBackActivity,预留空类即可,如图:
public class WBShareActivity extends WBShareCallBackActivity {
}
在application中初始化,添加代码如下:
//微信 appid appsecret
PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");//新浪微博 appkey appsecret
PlatformConfig.setSinaWeibo("3921700954","04b48b094faeb16683c32669824ebdad");// QQ和Qzone appid appkey
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
第三步:
自定义分享,以及分享不同内容
在application中添加代码:
public static final SHARE_MEDIA[] displaylist = {SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,SHARE_MEDIA.SINA /*,SHARE_MEDIA.DOUBAN*/};
在需要启用分享的Activity中添加如下代码:
//分享private ShareAction shareAction = new ShareAction(WebViewActivity.this).setDisplayList(BaseApplication.displaylist).setShareboardclickCallback(shareBoardlistener);
针对不同平台使用不同监听器
使用setShareboardclickCallback()
可以进行分享面板不同按钮的点击回调,方便开发者进行特殊处理
private ShareBoardlistener shareBoardlistener = new ShareBoardlistener() {@Overridepublic void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {switch (share_media) {case WEIXIN:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;case WEIXIN_CIRCLE:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;case SINA:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;case QZONE:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[0]).share();break;case QQ:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[0]).share();break;default:new ShareAction(WebViewActivity.this).setPlatform(share_media).setCallback(umShareListener).setShareContent(contents[1]).share();break;}}};
监听回调结果:
private UMShareListener umShareListener = new UMShareListener() {@Overridepublic void onResult(SHARE_MEDIA platform) {Toast.makeText(WebViewActivity.this, " 分享成功", Toast.LENGTH_SHORT).show();}@Overridepublic void onError(SHARE_MEDIA platform, Throwable t) {Toast.makeText(WebViewActivity.this, " 分享失败", Toast.LENGTH_SHORT).show();}@Overridepublic void onCancel(SHARE_MEDIA platform) {Toast.makeText(WebViewActivity.this, " 分享取消", Toast.LENGTH_SHORT).show();}};
设置分享内容ShareContent
private ShareContent[] contents = new ShareContent[3];{contents[0] = new ShareContent();contents[1] = new ShareContent();contents[2] = new ShareContent();}
contents[0].mTitle = "分享";
contents[0].mText = "内容";
contents[0].mTargetUrl = "链接地址";
contents[0].mMedia = new UMImage(mContext, resource);//图片资源
最后启动分享功能:
shareAction.open();
Android:Umeng(友盟) 微信,QQ,新浪分享 (三)相关推荐
- Android:Umeng(友盟)消息推送(二)
在已集成友盟统计的情况下:Android:Umeng(友盟)数据统计(一) 第一步: 个人中心---U-Push(消息推送)---添加新应用---从已有应用中添加 如图: 获得Appkey和secr ...
- android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法
这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...
- HBuilder webApp开发(七)微信/QQ/新浪/腾讯微博分享
HBuilder是支持微信分享(好友和朋友圈),QQ分享,新浪微博和腾讯微博分享. 但是在使用的过程中,官方给的文档似乎很坑爹. <分享插件配置> <分享插件开发指南> 都是2 ...
- 微信,新浪登录分享遇到的问题
问题一: 项目要集成微信,新浪第三登录分享功能,通过shardsdk,首先获取sharesdk appkey 获取微信,微博appkey appsecret 配置签名文件,等等 然后发现微信授权页面是 ...
- HTML制作分享到QQ空间,微信,新浪等效果
HTML制作分享到QQ空间,微信,新浪等效果 分享保存一个简单的HTML制作分享到QQ空间,微信,新浪等效果,分享一个比较简单的方法,只需套用代码便可完成 1.首先打开http://www.jiath ...
- Android之友盟多渠道打包与数据统计(非原创)
文章大纲 一.多渠道打包与数据统计介绍 二.友盟实现多渠道打包实战 三.友盟数据统计实战 四.项目源码下载 五.参考文章 一.多渠道打包与数据统计介绍 多渠道打包,相信很多同学都知道.在Andro ...
- Android 集成友盟推送方案(1)
我自己继承过FCM(国外app)百度云推送,阿里云推送,小米推送,华为推送,友盟推送,目前这几类推送方式.本文主讲友盟推送方式的集成步骤: 大家可以根据官网网址进行集成:官网如下: https://d ...
- android集成友盟u app,友盟U-Mini小程序集成指南
适用范围 该文档适用于友盟+微信小程序统计SDK 2.3.2 及以上版本. 微信小程序统计SDK快速集成 1. 注册友盟+账号 登录友盟+官网,按照引导注册友盟+账号 特别提醒:我们建议开发者在注册账 ...
- Android集成友盟推送功能
友盟是中国最大的移动开发者服务平台,为移动开发者提供免费的应用统计分析.社交分享.消息推送.自动更新.在线参数.移动推广效果分析.微社区等app开发和运营解决方案. 如何快速集成友盟推送功能: 1. ...
最新文章
- cloudemanager安装时出现ProtocolError: ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized问题解决方法(图文详解)...
- python待遇如何-老男孩学Python后就业如何?Python待遇高吗?
- MPLS标签分配控制方式——Vecloud
- 卷积神经网络看见了什么
- OpenCV: FFMPEG: tag 0x5634504d/‘MP4V‘ is not supported with codec id 12 and format ‘mp4 / MP4
- EIGRP路由协议基本设置
- python做数据排序,python 实现对数据的排序和绘图
- 如何手动添加或者修改海威康视摄像头IP地址的方法
- 堆栈和内存分配[转]
- Javascript特效:不断在页面跑的星星
- 妙用chrome插件,实现U校园自动填答案
- Vue PC端分辨率自适应
- Js~Boxy中的复杂弹出框
- 类似QQ的可隐藏的便签工具SNOTE
- 能和机器划拳,猜中你的表情,百度开了一家超好玩的“AI体验店”
- 1.30.Flink SQL案例将Kafka数据写入hive
- 云渲染技术在虚拟仿真医疗培训中的应用
- Ng机器学习 Week8 Unsupervised Learning
- 文件上传一些事(ie8/9下提示下载json文件)
- 潭州教育html视屏,潭州教育HTML多列布局CSS实现
热门文章
- devDependencies与dependencies
- 同态滤波 python_使用python差异隐私和同态的各种数据隐私保护方法
- Springboot秒杀系统(乐观锁+RateLimiter令牌+Redis缓存)
- 动漫漫画商城(Spring,SpringMVC,MyBatis,SSM,MYSQL,JSP,H-UI)
- Linux安装jdk的详细步骤
- jenkins 安装以及Jenkins无法在界面关闭跨站请求伪造保护(CSRF)解决403以及如何关闭Jenkins杀掉所有衍生进程
- linux缓冲区溢出攻击步骤,如何防范Linux操作系统下缓冲区溢出攻击
- Linux内核驱动模块测试 hello.ko
- 口语中使用频率相当高的俚语
- 【安卓开发之图片分享应用3:设置底部导航栏】