【友盟+】 U-Share集成

【友盟+】 U-Share集成

一、申请 appkey

1.1 登陆友盟+平台后点击【个人中心】

1.2 找到【U-Share】点击【立即使用】

1.3 选择【管理】标签,点击【添加应用】

1.4 填写应用基本信息,并获取appkey


二、设置分享平台信息

  • 1.去各个平台注册应用(例如:微信开放平台、腾讯开放平台)

  • 2.在友盟平台选择应用

  • 3.选择分享设置

  • 4.填写平台信息


三、下载 SDK

  • 1.下载地址

  • 2.根据需要勾选下载的集成包内容

  • 3.下载集成包

  • 4.解压压缩包后点击【友盟集成工具.jar】,按需选择。

  • 5.完成后生成【umeng_integratetool_result】文件夹。


四、工程配置

4.1 复制文件至工程

  • 1.将【umeng_integratetool_result】文件夹下内容拷贝进工程相应的文件夹中。
  • 2.修复项目res文件的引用error。

4.2 添加回调Activity

4.2.1 微信回调

  • 1.在包名目录下创建【wxapi】文件夹,新建一个名为【WXEntryActivity】的activity继承WXCallbackActivity。

  • 2.根据使用SDK选择WXEntryActivity路径

  • 3.在Android Manifest中注册微信回调Activity

4.2.2 QQ与新浪

QQ与新浪不需要添加Activity,但需要在使用QQ分享或者授权的Activity中,添加:

**注意:**onActivityResult不可在fragment中实现,如果在fragment中调用登录或分享,需要在fragment依赖的Activity中实现。

4.3 配置Android Manifest XML

4.3.2 添加权限










4.3.3 添加Activity

4.3.3.1 QQ完整版



        
            
            
            
            
        




备注:分享编辑页(只有新浪微博,QQ精简版,豆瓣,人人,腾讯微博,领英,twitter需要)。

4.3.4 添加友盟appkey



4.4 Android 6.0+适配

Android6.0以上系统需要动态申请权限,根据需求,在适当位置校验和申请权限。运行时权限校验及申请,可以参考此文章。Android运行时权限

4.5 配置友盟key及三方key

在application文件中配置三方平台的appkey:

备注:在application中初始化sdk,这个初始化最好放在application的程序入口中,防止意外发生。

4.6 签名设置

在项目中设置打包签名(需要与各大平台申请时使用签名保持一致)。

4.7 注意事项

1.微信平台回调Activity的路径名必须是【包名.wxapi.WXEntryActivity】,应用签名必须微信平台申请一致。

2.QQ平台必须允许读写SD卡权限;

3.QQ空间平台使用的是QQ应用(安装QQ空间应用视为未安装应用)。


五、分享集成

5.1 回调监听

private UMShareListener umShareListener = new UMShareListener() {
        /**
         * @descrption 分享开始的回调
         * @param platform 平台类型
         */
        @Override
        public void onStart(SHARE_MEDIA platform) {}

        /**
         * @descrption 分享成功的回调
         * @param platform 平台类型
         */
        @Override
        public void onResult(SHARE_MEDIA platform) {
            Toast.makeText(mContext,"分享成功",Toast.LENGTH_SHORT).show();
        }

        /**
         * @descrption 分享失败的回调
         * @param platform 平台类型
         * @param t 错误原因
         */
        @Override
        public void onError(SHARE_MEDIA platform, Throwable t) {
            Toast.makeText(mContext,"分享失败"+t.getMessage(),Toast.LENGTH_SHORT).show();
        }

        /**
         * @descrption 分享取消的回调
         * @param platform 平台类型
         */
        @Override
        public void onCancel(SHARE_MEDIA platform) {
            Toast.makeText(mContext,"取消分享",Toast.LENGTH_SHORT).show();

        }
    };

5.2 不带面板分享

5.3 带面板分享

5.4 分享消息类型

5.4.1 文本

5.4.2 图片

UMImage的构建有如下几种形式:

UMImage image = new UMImage(ShareActivity.this, "imageurl");//网络图片
UMImage image = new UMImage(ShareActivity.this, file);//本地文件
UMImage image = new UMImage(ShareActivity.this, R.drawable.xxx);//资源文件
UMImage image = new UMImage(ShareActivity.this, bitmap);//bitmap文件
UMImage image = new UMImage(ShareActivity.this, byte[]);//字节流

5.4.3 链接

  • 1.构建UMWeb

  • 2.将UMWeb设置到ShareAction中

分享结果:

5.4.4 视频

  • 1.视频只能使用网络视频:

    UMVideo video = new UMVideo(videourl);//视频地址
    video.setTitle(“视频标题”);//视频的标题
    video.setThumb(“http://www.umeng.com/images/pic/social/chart_1.png“);//视频的缩略图
    video.setDescription(“视频描述”);//视频的描述

  • 2.使用.withMedia(video)设置到ShareAction中

5.4.5 音乐

  • 1.音乐只能使用网络音乐:

    UMusic music = new UMusic(musicurl);//音乐的播放链接
    music.setTitle(“This is music title”);//音乐的标题
    music.setThumb(“http://www.umeng.com/images/pic/social/chart_1.png“);//音乐的缩略图
    music.setDescription(“my description”);//音乐的描述
    music.setmTargetUrl(Defaultcontent.url);//音乐的跳转链接

  • 2.使用.withMedia(music)设置到ShareAction中

备注:特别说明:播放链接是指在微信qq分享音乐,是可以在当前聊天界面播放的,要求这个musicurl(播放链接)必须要以.mp3等音乐格式结尾,跳转链接是指点击linkcard之后进行跳转的链接。

5.4.6 GIF

  • 1.构建UMEmoji

    UMEmoji emoji = new UMEmoji(this,”GIF图片地址”);
    emoji.setThumb(new UMImage(this, R.drawable.thumb));//缩略图

  • 2.使用.withMedia(emoji)设置到ShareAction中

备注:目前只有微信好友分享支持Emoji表情,其他平台暂不支持。

5.4.7 微信小程序

  • 1.构建UMMin

    UMMin umMin = new UMMin(Defaultcontent.url);
    umMin.setThumb(imagelocal);
    umMin.setTitle(Defaultcontent.title);
    umMin.setDescription(Defaultcontent.text);
    umMin.setPath("pages/page10007/xxxxxx");
    umMin.setUserName("xx_xxx");
    
  • 2.使用.withMedia(umMin)设置到ShareAction中

备注:目前只有微信好友支持小程序分享,朋友圈,收藏及其他平台暂不支持。

5.5 自定义分享UI

5.5.1 在分享面板添加一个自定义按钮

5.5.1.1 添加一个自定义按钮

5.5.1.2 addButton说明

  • 1.第一个参数(showword):显示的名字
  • 2.第二个参数(Keyword): 平台名称

用法如下:

1. 在string文件中设置:

    自定义分享按钮

2. 然后将名字umeng_sharebutton_custom当做参数传入。
  • 3.第三个参数(icon): 按钮图标的图片名字
  • 4.第四个参数(Grayicon): 置灰情况下按钮图标的图片名字

用法如下:

在drawable文件夹下有个图片叫做info_icon_1.png,想用该图片做按钮图标,可以将info_icon_1作为参数传入

5.5.1.3 分享面板回调监听

private ShareBoardlistener shareBoardlistener = new ShareBoardlistener() {

    @Override
    public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
        if (share_media == null) {
            //根据key来区分自定义按钮的类型,并进行对应的操作
            if (snsPlatform.mKeyword.equals("Keyword")) {
                Toast.makeText(ShareActivity.this, "add button success", Toast.LENGTH_LONG).show();
            }
        } else {//社交平台的分享行为
            new ShareAction(ShareActivity.this)
                    .setPlatform(share_media)
                    .setCallback(umShareListener)
                    .withText("多平台分享")
                    .share();
        }
    }
};

5.5.2 自定义分享面板

对于分享面板,开发者可以根据喜好,对背景颜色,显示位置,字体颜色等进行配置,配置需要使用ShareBoardConfig类。

更多参数设置查看分享集成文档附录4.6分享面板自定义进阶。点击跳转


六、常用接口调用

6.1 Debug模式开启方式

在初始化sdk的地方设置Config.DEBUG = true

6.2 内存泄露处理方法

在使用分享或者授权的Activity中,重写onDestory()方法:

@Override
protected void onDestroy() {
    super.onDestroy();
    UMShareAPI.get(this).release();
}

6.3 判断客户端安装

mShareAPI.isInstall(this, SHARE_MEDIA.WEIXIN)

七、常见问题

7.1 调不起微信,弹窗一闪而过

可能原因:

  1. 应用签名与微信开放平台填写签名不一致(debug签名);
  2. 微信开放平台签名填写的签名格式有误,微信开放平台格式:【全小写,不加:】。

你可能感兴趣的:(Android,Android--三方集成)