博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
友盟 第三方分享
阅读量:4582 次
发布时间:2019-06-09

本文共 4325 字,大约阅读时间需要 14 分钟。

集成准备

获取Appkey

集成【友盟+】SDK之前,您首先需要到 【友盟+】官网注册并且添加新应用,获得Appkey。

1、填写应用基本信息,获取AppKey

首先添加新应用,输入应用名和选择平台信息,选择应用类别,点击提交冰获取应用appKey,得到Android 唯一Appkey

2、下载SDK并去集成

找到 https://developer.umeng.com/sdk/android界面,选择社会化分享 SDK,,点击设置,选择需要分享的平台,点击下载,下载解压后,将common文件夹下的文件夹拷贝到项目中,再将share文件夹下的main文件夹以及platforms(选择你想使用的平台即可)和shareboard文件夹下对应的资源文件和jar放入你的工程。

3、添加回调Activity

微信

在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity

支付宝

与微信相似,支付宝需要在包名目录下创建apshare文件夹,然后建立一个ShareEntryActivity的类,继承ShareCallbackActivity。

QQ与新浪

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

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

 

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

4、配置Android Manifest XML

  • 微信:
  • qq(请注意将我们的qq appkey替换成您自己的qq appkey):

 

5、权限添加

如果需要使用QQ纯图分享或避免其它平台纯图分享的时候图片不被压缩,可以增加以下权限:

 

请查看你的build.gradle文件,如果 targetSdkVersion小于或等于22,可以忽略这一步,如果大于或等于23,需要做权限的动态申请:

其中123是requestcode,可以根据这个code判断,用户是否同意了授权。如果没有同意,可以根据回调进行相应处理:

@Overridepublic void onRequestPermissionsResult(int requestCode,        String permissions[], int[] grantResults) {}

 

添加读写文件的权限

 

  

if(Build.VERSION.SDK_INT>=23){                  String[] mPermissionList = new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.ACCESS_FINE_LOCATION,                                                           Manifest.permission.CALL_PHONE,Manifest.permission.READ_LOGS,Manifest.permission.READ_PHONE_STATE,                                                           Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.SET_DEBUG_APP,                                                           Manifest.permission.SYSTEM_ALERT_WINDOW,Manifest.permission.GET_ACCOUNTS,                                                           Manifest.permission.WRITE_APN_SETTINGS};                  ActivityCompat.requestPermissions(this,mPermissionList,123);              }

 

6、初始化设置

初始化需要在您的Application中调用我们的初始化接口:

PlatformConfig.setWeixin("appId", "appkey");        PlatformConfig.setQQZone("appId", "appkey");        // 一些分享配置        UMShareConfig config = new UMShareConfig();        config.isOpenShareEditActivity(true);        config.isNeedAuthOnGetUserInfo(true);        config.setSinaAuthType(UMShareConfig.AUTH_TYPE_SSO);        UMShareAPI.get(getApplicationContext()).setShareConfig(config);

U-Share基础功能

分享

友盟分享分为两种形式:

  • 使用分享面板的分享,用户可以调用我们的打开分享面板的方法,点击分享面板的对应平台进行分享。
  • 不使用分享面板的分享,用户可以自己写分享按钮,或者触发事件,然后调用我们的分享方法,进行分享。简而言之,直接分享就是在用户自己的界面组件中插入分享行为,分享面板是打开我们写好的一个界面组件,根据点击事件进行分享。

分享(带面板)

打开分享面板的代码如下:

new ShareAction(MainActivity.this).withText("hello")                        .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)    .setCallback(umShareListener).open();

 

不带面板

new ShareAction(MainActivity.this).setPlatform(SHARE_MEDIA.QQ)//传入平台.withText("hello")//分享内容.setCallback(umShareListener)//回调监听器.share();

其中umShareListener为回调监听,构建如下:

private UMShareListener shareListener = new UMShareListener() {        /**         * @descrption 分享开始的回调         * @param platform 平台类型         */        @Override        public void onStart(SHARE_MEDIA platform) {        }        /**         * @descrption 分享成功的回调         * @param platform 平台类型         */        @Override        public void onResult(SHARE_MEDIA platform) {            Toast.makeText(ShareDetailActivity.this,"成功了",Toast.LENGTH_LONG).show();        }        /**         * @descrption 分享失败的回调         * @param platform 平台类型         * @param t 错误原因         */        @Override        public void onError(SHARE_MEDIA platform, Throwable t) {            Toast.makeText(ShareDetailActivity.this,"失败"+t.getMessage(),Toast.LENGTH_LONG).show();        }        /**         * @descrption 分享取消的回调         * @param platform 平台类型         */        @Override        public void onCancel(SHARE_MEDIA platform) {            Toast.makeText(ShareDetailActivity.this,"取消了",Toast.LENGTH_LONG).show();        }    };

 

其余的可以参照友盟文档

https://developer.umeng.com/docs/66632/detail/66639

 

转载于:https://www.cnblogs.com/chhom/p/9036232.html

你可能感兴趣的文章
Java_I/O输入输出_实现当用户输入姓名和密码时,将每一个姓名和密码加在文件中,如果用户输入done,就结束程序。...
查看>>
matplotlib学习笔记
查看>>
PHP-SplDoublyLinkedList
查看>>
微信的audio无法自动播放的问题
查看>>
VISUAL STUDIO 2010 单元测试
查看>>
Day Ten
查看>>
iOS开发---分类和扩展(Categories和Extensions)
查看>>
Kattis之旅——Eight Queens
查看>>
app
查看>>
[Swift]LeetCode842. 将数组拆分成斐波那契序列 | Split Array into Fibonacci Sequence
查看>>
user 项目 spring mybatis
查看>>
Web App三年将取代原生App?
查看>>
[LeetCode] 4. Median of Two Sorted Arrays_Hard tag: Array, Binary Search
查看>>
[Algorithms] Solve Complex Problems in JavaScript with Dynamic Programming
查看>>
[Javascript] Customize Behavior when Accessing Properties with Proxy Handlers
查看>>
[RxJS] Transformation operator: repeat
查看>>
hdu3033 I love sneakers! && hdu3535 AreYouBusy (组合背包)
查看>>
C++ Primer 5th 第5章 语句
查看>>
二进制流互转
查看>>
JavaScript学习 常用的对话框函数
查看>>