文档章节

友盟的运用

C
 Chiigo
发布于 2015/02/03 16:46
字数 1303
阅读 65
收藏 0

     一直想写一下这里遇到的问题,今天就先把当时简单记录的问题总结一下。先说一个最重要的问题,就是sdk的版本问题。集成友盟的时候遇到的最大问题就在这里,当时就因为没有及时升级sdk以及一些jar包导致了这部分拖了一个多星期。当时因为手头还有很多地方需要处理,所以也是没有及时更新,担心会遇到一些因为更新带来的问题,所以在此提醒要及时更新sdk。sdk更新完成,这里的问题和普通的sdk集相差无多了,值得一提的是友盟的sdk封装比较深,因此自定义起来就有些麻烦。

      一.先说自动更新,这里没什么好说。按照官网文档使用即可,对于Support Library没有要求。值得一提的是,提示更新的弹出窗口即资源文件下的umeng_update_dialog.xml。可以根据这个修改样式,里面也提供了“稍后更新”等button,平时是隐藏的。需要用的时候设置为可见即可,点击事件它们已经封装处理了。

      二.关于社会化分享这里,在使用前记得把android-support-v4.jar更新到要求的版本,这样就可以集成了。在说问题之前先说一下我选择的集成方式,官网给出了添加资源文件和jar文件有三种方式,这里我使用了第三种。三种方法第一种最为快捷,但我当时试了没成功。我不知道当时是否是sdk的一些问题,所以先把几种方法使用了一遍,第三种成功了也就直接使用了。事后实验第一种也可以用,只是在项目中确实遇见了一些问题。等集成好之后,新浪微博等一些第三方分享直接就可以用了。但是微信和qq相关的还是不能使用,微信要去注册app,只要签名正确了等一天基本可以过。这里使用的时候记得不要直接用Eclipse在手机上运行。应该先打包签名,在以apk的形式安装,这样才可以多次分享。 否则,微信只允许分享一次,然后再次分享时会无效。 qq这里,如果使用sharesdk是不需要其它设置的,不过友盟这里需要在qq那里注册开发者,按照友盟提供的步骤进行即可。注册腾讯开发者的时候,身份证那里要拍的清晰一些。我就是因为那里申请了三次才过。

        好了,上边都是一些集成过程中的常规问题。这里说一个特别点的问题就是qq集成分享时会有个.so文件找不到导致无法安装。具体问题报错找不到了,解决方案可以去友盟社区搜索。把Eclipse的一些编译设置一下就可以了。官网有解决方案,应该是SDk本身的bug,版本更新后估计就不会遇见了。

      三.用户反馈

          这里只要把sdk等相关数据都更新,只需要一句代码就可以实现基本的功能。不过因为封装比较深,自带界面又不美观。这里没做过的修改起来还是很麻烦的,官网说的那个fragment看的我是云里雾里,所以我最后自己写了一个activity,调用了它们提到的方法(官网和demo在这方面的介绍都比较模糊,所以当时也花了一些时间)

       

public class LeftSetFbCustomActivity extends Activity{
	
	private FeedbackAgent mAgent;
	private Conversation mComversation;
	private Context mContext;
	private UserInfo info;
	private Button sendBtn;
	private EditText inputEdit;
	private EditText conEdit;
              @Override
            protected void onCreate(Bundle savedInstanceState) {
            	super.onCreate(savedInstanceState);
            	setContentView(R.layout.buzhi_um_fankui);
            	
            	mContext = this;

        		initView();
        		//调用传递数据的接口
        		mAgent = new FeedbackAgent(this);		
        		mComversation = mAgent.getDefaultConversation();
        		info= mAgent.getUserInfo();
        		//sync();
            }
			private void initView() {
				sendBtn = (Button) findViewById(R.id.buzhi_um_commit);
				inputEdit = (EditText) findViewById(R.id.buzhi_um_fankui);
				conEdit = (EditText) findViewById(R.id.buzhi_um_lianxi);
				
				sendBtn.setOnClickListener(new OnClickListener() {
					
					@Override
					public void onClick(View v) {
						
						//编辑要反馈的内容
						String content_cont = inputEdit.getText().toString();
						String contact_info = conEdit.getText()
								.toString();
						String content=content_cont+"\n\r联系方式:"+contact_info;
						inputEdit.getEditableText().clear();
						if (!TextUtils.isEmpty(content)) {
							setInfo();
							mComversation.addUserReply(content);//添加到会话列表
//							mHandler.sendMessage(new Message());
							sync();
							Showdialog();
						}
					}
				});
			}
			private void Showdialog() {
				 final Dialog dialog = new Dialog(LeftSetFbCustomActivity.this, R.style.MyDialog);
		         //设置它的ContentView
		       dialog.setContentView(R.layout.buzhi_test_clsdialog);
		       dialog.show();
		 	   Button btok=(Button) dialog.findViewById(R.id.dialog_bt_ok);
		 	   TextView text= (TextView) dialog.findViewById(R.id.dialog_tv_ok);
		       text.setText("        您的反馈已经提交,谢谢您提出宝贵的意见,您留下的每个字都将用来改善我们的应用!       ");
		 	   btok.setOnClickListener(new OnClickListener() {
					@Override
					public void onClick(View v) {
						// TODO Auto-generated method stub
						dialog.dismiss();
					}
				});
			}
			
			/**
			 * 
			 * 编辑用户的联系方式
			 * */
			protected void setInfo() {
				if (info == null)
					  info = new UserInfo();
					Map<String, String> contact = info.getContact();
					if (contact == null)
					contact = new HashMap<String, String>();
					String contact_info = conEdit.getText()
					.toString();
					//contact.put(KEY_UMENG_CONTACT_INFO_PLAIN_TEXT, contact_info);
					contact.put("qq",contact_info);
					//contact.put("qq", "*******");
					//contact.put("phone", "*******");
					//contact.put("plain", "*******");
					info.setContact(contact);
					// optional, setting user gender information.
//					info.setAgeGroup(1);
//					info.setGender("male");
					//info.setGender("female");
					mAgent.setUserInfo(info);
					mAgent.updateUserInfo();
					mAgent.sync();
			}
			// 数据同步
			private void sync() {
				mComversation.sync(new SyncListener() {
					@Override
					public void onSendUserReply(List<Reply> replyList) {
					}
					@Override
					public void onReceiveDevReply(List<Reply> replyList) {
						//mSwipeRefreshLayout.setRefreshing(false);
						if (replyList == null || replyList.size() < 1) {
							return;
						}
						//mHandler.sendMessage(new Message());
					}
				});
			}	
			public void back(View view) {
				finish();
			}
			
}



     

     

© 著作权归作者所有

C
粉丝 0
博文 5
码字总数 5531
作品 0
长沙
私信 提问
高德地图api使用过程出现崩溃

java.lang.UnsatisfiedLinkError: Native method not found: com.autonavi.amap.mapcore.MapCore.nativeNewInstance:(Ljava/lang/String;)Jat com.autonavi.amap.mapcore.MapCore.nativeNewI......

polarw
2015/09/11
8.1K
0
Java转iOS-第一个项目总结(1)

0.前言 本人14年12月份,从网站开发组转到了移动开发组,自己的java两年半工作经验变成了objective-c零经验。2015年1月份新启动了一个移动项目,年后因为人事变动,自己从辅助开发变成了"核心...

蛙牛
2015/03/31
12.7K
67
20160301

301了 好吧 从去年11月中旬到现在 马上半年过去了 自己还是一点不够长进 毛病太多了 荒废太多 浪费时间好多好多 外出运动到3点30分 到4点 才开始正规 学习了友盟的 集成测试 对了,英语 也要...

navychang
2016/03/01
2
0
Android使用友盟集成QQ、微信、微博等第三方登录

前言 最近项目需要加入第三方分享和登录功能,之前其他项目的第三方分享和登录一直都使用ShareSDK实现的。为了统一使用友盟的全家桶,所以三方分享和登录也就选择了友盟。这里记录一下完整的...

慕前端7069444
2018/05/21
0
0
iOS集成微信支付的一些坑:onResp不回调、只显示一个确定按钮、闪回

iOS集成微信支付总体来说还是比较容易的(如果没有那些坑的话),所有文档都在: https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_1 甚至只要看: https://pay.weixin.qq.com/wiki...

cuibo1123
2016/03/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Eureka应用注册与集群数据同步源码解析

在之前的EurekaClient自动装配及启动流程解析一文中我们提到过,在构造DiscoveryClient类时,会把自身注册到服务端,本文就来分析一下这个注册流程 客户端发起注册 boolean register() t...

Java学习录
17分钟前
4
0
Java描述设计模式(15):责任链模式

本文源码:GitHub·点这里 || GitEE·点这里 一、生活场景描述 1、请假审批流程 公司常见的请假审批流程:请假天数 当 day<=3 天,项目经理审批当 3<day<=5 天,部门经理审批当 day>5 天...

知了一笑
27分钟前
4
0
总结:数组与链表

1、内存申请:数组在内存上是连续的空间;链表,内存地址上可以是不连续的。 2、查询速度:数组可以随机访问,链表必须顺序访问,即从首个元素开始遍历,逐个查找,所以数组查询很快。 3、写入...

浮躁的码农
36分钟前
6
0
HashMap源码分析

read

V丶zxw
54分钟前
5
0
Python字符串或JSON字符串转字典dict、列表list

有3种方法 1、使用ast模块 >>> import ast>>> s = '["test",1]'>>> ast.literal_eval(s)['test',1]>>> s = '{"test":1}'>>> ast.literal_eval(s){'test': 1} 2、eval函数,这个......

编程老陆
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部