使用shareSDK的一些总结 ios使用sharesdk

使用shareSDK的一些总结:原创奥最近在使用shareSDK 社会化组件还不错,最开始用的时候是4月份 最终因为各种各样的问题而放弃了,如今又来看看他改的怎么样子了 所以开始试试,感觉还不错 好方面还是挺多的 当然 这里要记住的是他的劣势也就是我今天使用遇到的一些问题(1、显示黑色背景问题 2、 过滤不使用的平台(不用去jar 可能以后要用) 3、过滤分享页面使用不到的平台图标)1、 使用分享组件 先开始出现一篇黑屏 后来慢慢刷新了数据1、
我研究了一番 发现 这中间是在获取分享平台的时间问题 为此我采用了如下解决方案1、 获取平台列表的地方 放在程序的入口 然后设置为全局变量 这个时候也用不了多少时间同时在这里将id为0的平台过滤掉 因为id为0的是我们暂时不用的 以后可能会用的代码如下new Thread(new Runnable() {
@Overridepublic void run() {
Platform platformList[] = ShareSDK.getPlatformList(CmsTopActivity.this);List list = new ArrayList();for (int i = 0, length = platformList.length; i< length; i++) {if (platformList[i].getId() != 0) {list.add(platformList[i]);}}platformList = list.toArray(new Platform[list.size()]);CmsTop.setPlatformList(platformList);//设置全局变量}}).start();
2、 这里不得不说明一下 因为获取平台的标识来自 配置文件 或者是后台配置 灵活应用的话 后台配置好一点 但是 如果是多个应用的话使用的方式又不是很相同 所以 这里我先放在前台设置配置文件 ,在设置配置文件的时候 我做了一个处理 那就是 用不到的 一律设置id为0SortId 依次排序不用管他比如 Id="0" SortId="12" ApiKey="0184ed49b8028256048ec7dd28078702" Secret="88e421c51be5ef5a" RedirectUri="http://www.cmstop.net" ShortLinkConversationEnable="true" Enable="true" />3、在使用分享的地方 也就是某个按钮或者什么的触发事件里 调用 caseR.id.tool_free_imgBtn:
showShare(false, null,defaultContent);我这里是有界面的 无界面的填truedefaultContent 为默认内容当然不能忘了initSDK和stopSDK。。
方法的完整类如下//使用快捷分享完成分享(请务必仔细阅读位于SDK解压目录下Docs文件夹中OnekeyShare类的JavaDoc)private void showShare(boolean silent, String platform,Stringcontent) {final OnekeyShare oks = newOnekeyShare(CmsTop.getPlatformList());//采用传值方式传递过去oks.setNotification(R.drawable.icon,getString(R.string.app_name));oks.setAddress("12345678901");oks.setTitle(activity.getString(R.string.share));oks.setTitleUrl("http://sharesdk.cn");oks.setText(content);
oks.setImageUrl("http://img.appgo.cn/imgs/sharesdk/content/2013/07/25/1374723172663.jpg");
oks.setComment(activity.getString(R.string.share));oks.setSite(activity.getString(R.string.app_name));
oks.setVenueName("Share SDK");oks.setVenueDescription("This is a beautiful place!");oks.setLatitude(23.056081f);oks.setLongitude(113.385708f);oks.setSilent(silent);if (platform != null) {oks.setPlatform(platform);}
oks.setShareContentCustomizeCallback(newShareContentCustomizeDemo());


oks.show(activity);}
4、 在OnekeyShare 类里面 讲平台列表传递过去也就是OnekeyShare里面用的平台都是我们传递过来的同时要将平台信息传递给分享页面public OnekeyShare(PlatformplatformList[]) {reqMap = new HashMap();customers = new ArrayList();callback = this;this.platformList=platformList;}
传递分享页面EditPage page = new EditPage(platformList);page.setShareData(reqMap);page.setParent(this);5、在EditPage使用传递过来的平台信息 这样就可以过滤掉我们使用不到的分享平台的图标了 同时PlatformGridView中获取平台代码注销奥// 为了更好的ui效果,开启子线程获取平台列表new Thread(){public void run() {// platformList = ShareSDK.getPlatformList(context);// List<Platform> list=newArrayList<Platform>();////// for(inti=0,length=platformList.length;i<length;i++){// if(platformList[i].getId()!=0){// list.add(platformList[i]);// }// }// platformList=list.toArray(newPlatform[list.size()]);UIHandler.sendEmptyMessage(MSG_PLATFORM_LIST_GOT,PlatformGridView.this);}}.start();
使用shareSDK的一些总结 ios使用sharesdk

6、发现一种最简单的去除分享平台问题 就是设置某个平台为false 这样他就不可用了 图标也隐藏了<SinaWeibo Id="1" SortId="1" AppKey="3466722401" AppSecret="78808411df9b692b2f51588d0a2a7f20" RedirectUrl="http://app.cmstop.dev/r/kxt4dow2kcvi" ShortLinkConversationEnable="true" Enable="false"//这里改成false 就不可用了
7、在做搜狐微博分享的时候 找不到call back, 后来才发现一个问题就是应用设置里面要设置浏览器的回调地址这入图
这个问题是shareSDK的工程师帮忙找到的非常感谢8、在shareSDK中始终分享搜狐微博不成功 不知道为什么很纠结9、在shareSDK分享中 有三种情况配置分享的的平台第一种 就是后台配置,但是在使用的时候 要ShareSDK.setNetworkDevInfoEnable(true);不过这种方式不适合我 同时我做的时候 也没有成功所以放弃这种做法第二种做法就是前台写的配置文件 这种方法可行 但是 比较麻烦 适合固定分享的我们的需求是不固定分享 服务器可以随时更改平台 于是这就是第三种方式 前台代码配置法首先要删除asset里的配置文件 因为我发现 不管是第一种还是第二种 配置文件始终生效所以要把他删除 至于 要删除jar包 配置为false的做法 也都是可行的 但是还是不够灵活 第一步 从服务器上获取分享平台 解析成平台列表(我做的比较笨 改天优化 ) public voidsetShareApiModels(ArrayList<ShareApiModel>shareApiModels){this.shareApiModels = shareApiModels;} 第二步分化ShareApiModelprivate int index;private String text;private String alias;private String appid;private String appkey;private String appsecret;private String redirect_uri;
public ShareApiModel(){}第三步 在程序入口 进行配置和设置ArrayList<ShareApiModel>shareApiModels=splashData.getShareApiModels();for(inti=0,length=shareApiModels.size();i<length;i++){ShareApiModel shareApiModel=shareApiModels.get(i);Stringailias=shareApiModel.getAlias();if ("SinaWeibo".equals(ailias)){ShareSDK.setSinaWeiboDevInfo(activity,shareApiModel.getAppKey(),shareApiModel.getAppsecret(),shareApiModel.getRedirect_uri(), 1, 1, true, true);// setSinaWeiboDevInfo(Context context, java.lang.StringappKey, java.lang.String appSecret, java.lang.String redirectUrl,int id, int sortId, boolean shortLinkConversationEnable, booleanenable)// 设置新浪微博的应用信息}else if ("TencentWeibo".equals(ailias)){ShareSDK.setTencentWeiboDevInfo(activity,shareApiModel.getAppKey(),shareApiModel.getAppsecret(),shareApiModel.getRedirect_uri(), 2, 2, true, true);// setTencentWeiboDevInfo(Context context, java.lang.StringappKey, java.lang.String appSecret,// java.lang.String redirectUri, int id, int sortId, booleanshortLinkConversationEnable, boolean enable)// 设置腾讯微博的应用信息}else if ("QZone".equals(ailias)){ShareSDK.setQZoneDevInfo(activity, shareApiModel.getAppKey(),3,3, true, true);// ShareSDK.setQZoneDevInfo(activity,shareApiModel.getAppKey(),shareApiModel.getAppsecret(),// shareApiModel.getRedirect_uri(), i, i, true, true);}else if ("QQ".equals(ailias)){ShareSDK.setQQDevInfo(activity, shareApiModel.getAppKey(), 4, 4, true, true);// setQQDevInfo(Context context, java.lang.String appId, intid, int sortId, boolean shortLinkConversationEnable, booleanenable)// 设置QQ客户端分享的应用信息}else if ("sms".equals(ailias)){// setShortMessageDevInfo(Context context, int id, int sortId,boolean shortLinkConversationEnable, boolean enable)// 设置短信息的应用信息ShareSDK.setShortMessageDevInfo(activity, 5, 5, true,true);}else if ("Weixitimeline".equals(ailias)){//朋友圈ShareSDK.setWechatMomentsDevInfo(activity,shareApiModel.getAppKey(), 6, 6, true, true);// setWechatMomentsDevInfo(Context context, java.lang.StringappId, int id, int sortId, boolean shortLinkConversationEnable,boolean enable)// 设置微信朋友圈的应用信息}else if ("Weixisession".equals(ailias)){ShareSDK.setWechatDevInfo(activity,shareApiModel.getAppKey(), 7, 7, true,true);// setWechatDevInfo(Context context, java.lang.String appId,int id, int sortId, boolean shortLinkConversationEnable, booleanenable)// 设置微信的应用信息}else if ("Renren".equals(ailias)){ShareSDK.setRenrenDevInfo(activity, shareApiModel.getAppKey(),shareApiModel.getAppsecret(), 8, 8, true, true);// setRenrenDevInfo(Context context, java.lang.String apiKey,java.lang.String secretKey, int id, int sortId, booleanshortLinkConversationEnable, boolean enable)// 设置人人网的应用信息}
else if("NetEaseMicroBlog".equals(ailias)){ShareSDK.setNetEaseMicroBlogDevInfo(activity,shareApiModel.getAppKey(),shareApiModel.getRedirect_uri(),9, 9, true, true);// setNetEaseMicroBlogDevInfo(Context context,java.lang.String consumerKey, java.lang.String redirectUri, int id,int sortId, boolean shortLinkConversationEnable, booleanenable)// 设置网易微博的应用信息}else if ("Douban".equals(ailias)){ShareSDK.setDoubanDevInfo(activity, shareApiModel.getAppKey(),shareApiModel.getAppsecret(),shareApiModel.getRedirect_uri(), 10, 10, true, true);// setDoubanDevInfo(Context context, java.lang.String apiKey,java.lang.String secret, java.lang.String redirectUri, int id, intsortId, boolean shortLinkConversationEnable, boolean enable)// 设置豆瓣的应用信息}else if ("Kaixin".equals(ailias)){// setKaixinDevInfo(Context context, java.lang.String appKey,java.lang.String redirectUri, int id, int sortId, booleanshortLinkConversationEnable, boolean enable)// 设置开心网的应用信息ShareSDK.setKaixinDevInfo(activity, shareApiModel.getAppKey(),shareApiModel.getRedirect_uri(), 11, 11, true, true);}else if ("email".equals(ailias)){ShareSDK.setEmailDevInfo(activity, 12, 12, true, true);// setEmailDevInfo(Context context, int id, int sortId,boolean shortLinkConversationEnable, boolean enable)// 设置电子邮件的应用信息}}
第四步 设置完毕之后 一定要记得 将得到的列表 排序 因为我发现 代码配置时候的排序是不生效的 Platform platformList[] =ShareSDK.getPlatformList(CmsTopActivity.this);List<Platform> list = newArrayList<Platform>();for (int i = 0, length = platformList.length; i< length; i++) {if (platformList[i].getId() != 0) {list.add(platformList[i]);}}ComparatorPlatform comparator=new ComparatorPlatform();Collections.sort(list,comparator);//拍序
然后设置为全局变量以后使用 platformList= list.toArray(new Platform[list.size()]);XXXXXAplication.setPlatformList(platformList);10、排序的类如下public class ComparatorPlatform implements Comparator{public int compare(Object arg0, Object arg1) {Platform p0=(Platform)arg0;Platform p1=(Platform)arg1;
//首先比较年龄,如果年龄相同,则比较名字
int flag=p0.getId()-(p1.getId());//如果是string可以使用compareToif(flag==0){ returnp0.getSortId()-(p1.getSortId());}else{ return flag;} }}

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/261263.html

更多阅读

转载:文书档案归档文件分类时的一些错误

文书档案归档文件分类时的一些错误归档文件分类在文书档案管理中占有很重要的位置,但档案管理人员在进行分类时往往容易出现以下几个方面的错误。一是选择的分类标准交叉。如在选择分类方案时,既使用“机构”,又使用“问题”标准(如综

二层交换机的一些特点 二层三层交换机区别

1:这类交换机是工作在第二层的,也就是说交换机的工作的最高层次是对数据链路层数据的一些处理。最初人们在局域网中使用的是集线器,然后是网桥,直到现在人们更多的使用的是交换机,因为交换机有更多的特点。2:交换机的一个很重要的特点是可

(转)关于NEON的一些总结 neon

http://blog.csdn.net/dongjun7357/article/details/6278502http://www.arm.com/zh/products/processors/technologies/neon.php----------------------一、NEON简介NEON是通用的SIMD(单指令多数据)引擎。通过NEON可以加速多媒体和

爱咪课堂 第四课:有关猫砂的一些问题

【爱咪课堂】第四课:有关猫砂的一些问题前言:我们小时候听说的猫厕所,都是些煤灰啦什么的,脏脏的。但现在不同辣,有了猫沙。可以很方便的让主人处理猫猫的排泄问题。因为猫猫不象狗每天可以出去溜着时解决,家里要为它准备一个猫沙盆。

火狐(Firefox)优化及我使用的一些扩展介绍 火狐firefox

火狐(Firefox)优化及我使用的一些扩展介绍(欢迎大家一起交流扩展)A.用参数"-Profile"改变火狐配置文件的存放位置      2.jpg (41.5 KB)2009-4-14 03:15只要在火狐的快捷方式上点属性然后在目标(T)后面加上"-Profile"及位置即

声明:《使用shareSDK的一些总结 ios使用sharesdk》为网友任性的余味分享!如侵犯到您的合法权益请联系我们删除