QQ第三方分享详解

来源:互联网 发布:城乡统筹发展数据 编辑:程序博客网 时间:2024/05/16 14:07

在友盟中下载QQ的SDK:

http://bbs.umeng.com/portal.php

SDK文件目录介绍

  • main -- 核心库

umeng_social_api.jar
umeng_social_net.jar
umeng_social_tool.jar

  • platforms -- 分享平台库

QQ精简版(SocialSDK_QQ_Simplify.jar)

这里只列举QQ、最终platforms文件夹内包含的文件与下载页面选择的平台有关

  • shareboard

umeng_shareboard_widget.jar(工程中存在support v4或不使用面板可以不加) 
umeng_social_shareboard.jar

拷贝jar及res

拷贝jar和res有如下两种形式

a.将main文件夹以及platform(选择你想使用的平台即可)文件下,对应的资源文件和jar放入你的工程

修改AndroidManiFest

首先需要添加权限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><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.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/><uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/><uses-permission android:name="android.permission.READ_CONTACTS"/><uses-permission android:name="android.permission.RECEIVE_SMS"/><uses-permission android:name="android.permission.READ_SMS"/><uses-permission android:name="android.permission.GET_TASKS"/>
其中由于QQ登陆模块重复添加的权限


友盟分享分为两种形式:

  • 分享面板分享,用户可以调用我们提供的默认分享面板UI,打开分享面板,然后点击分享面板的对应平台进行分享
  • 直接分享,用户可以自己写分享按钮,或者触发事件,然后调用我们的分享方法,进行分享。

设置分享链接

分享链接可以使用UMWeb进行分享:

UMWeb  web = new UMWeb(Defaultcontent.url);        web.setTitle("This is music title");//标题        web.setThumb(thumb);  //缩略图        web.setDescription("my description");//描述

 打开分享面板

在需要弹出分享面板选择页的地方调用下列代码

new ShareAction(MainActivity.this)        .withText("hello")
要分享的网页        .withMedia(web)
分享的APP
setDisplayList中设置的枚举参数就是最终分享面板中显示的平台,
所传入参数的顺序即为最终面板分享平台的排列顺序        .setDisplayList(SHARE_MEDIA.SINA, SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN)        .setCallback(umShareListener).open();

onActivityResult实现方法如下:

@Override  protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);    }


直接分享

简而言之,直接分享就是在用户自己的界面组件中插入分享行为

分享可以通过如下代码实现,不同平台只要传入不同的SHARE_MEDIA即可。

new ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ)                        .withText("hello")                        .setCallback(umShareListener)                        .share();

其中umShareListener为回调监听,构建如下,其中分享成功会回调onComplete,取消分享回调onCancel,分享错误回调onError,对应的错误信息可以用过onError的Throwable参数来打印

    private UMShareListener umShareListener = new UMShareListener() {     @Override        public void onStart(SHARE_MEDIA platform) {           //分享开始的回调        }        @Override        public void onResult(SHARE_MEDIA platform) {            Log.d("plat","platform"+platform);                Toast.makeText(MainActivity.this, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();        }        @Override        public void onError(SHARE_MEDIA platform, Throwable t) {            Toast.makeText(MainActivity.this,platform + " 分享失败啦", Toast.LENGTH_SHORT).show();            if(t!=null){                Log.d("throw","throw:"+t.getMessage());            }        }        @Override        public void onCancel(SHARE_MEDIA platform) {            Toast.makeText(MainActivity.this,platform + " 分享取消了", Toast.LENGTH_SHORT).show();        }    };

详细代码见http://dev.umeng.com/social/android/share-detail

compile 'com.github.bumptech.glide:glide:3.8.0'compile 'de.hdodenhof:circleimageview:2.1.0'
在Gradle Scripts的工程下加入这两个JAR包
Glide是和Imageloader一样的图片展示控件
使用方法:
Glide.with(MainActivity.this) //上下文
.load(map.get("iconurl"))  //要在登陆中展示的User的图片
.into(img);   //xml布局中的控件

circleimageview   //直接在xml中使用
 
<de.hdodenhof.circleimageview.CircleImageView    android:layout_width="50dp"    android:layout_height="50dp"    android:id="@+id/img"    />
效果展示是一张圆形的图片





原创粉丝点击