umeng(友盟)实现第三方登录和分享详解之登录详解,flutter页面跳转
作者:互联网
main是核心库
lib里面有三个jar,copy到工程libs下面
umeng_social_api.jar
umeng_social_net.jar
umeng_social_tool.jar
res里面文件全选copy到工程res下面
platforms是平台库
和核心库一样,copy里面的libs和res里面的文件,但对于平台来说可能会有回调activity,
支付宝: 把apshare这个文件(里面包含activity)直接copy到项目的包名下,com.xxx.xxx下面。
微信 :把wxapi这个文件(包含activity,精简版和完整版不同)放到copy项目包名下
钉钉与微信相似,钉钉需要在包名目录下创建ddshare文件夹,然后建立一个DDShareActivity的类,DingCallBack。
新浪和QQ 不需要回调activity,但是需要在登录分享的activity内加入回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
3、配置Android Manifest XML
这些权限都是必要的,已经存在的不需要再次添加。
4、Android Manifest XML中配置activity
加上umeng的appkey
<meta-data
android:name=“UMENG_APPKEY”
android:value=“561cae6ae0f55abd990035bf” >
新浪:
<activity
android:name=“com.umeng.socialize.media.WBShareCallBackActivity”
android:configChanges=“keyboardHidden|orientation”
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:exported=“false”
android:screenOrientation=“portrait” >
<activity android:name=“com.sina.weibo.sdk.web.WeiboSdkWebActivity”
android:configChanges=“keyboardHidden|orientation”
android:exported=“false”
android:windowSoftInputMode=“adjustResize”>
<activity
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
android:launchMode=“singleTask”
android:name=“com.sina.weibo.sdk.share.WbShareTransActivity”>
微信:不需要
支付宝:
<activity
android:name=".apshare.ShareEntryActivity"
android:configChanges=“keyboardHidden|orientation|screenSize”
android:exported=“true”
android:screenOrientation=“portrait”
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
钉钉:
<activity
android:name=".ddshare.DingCallBack"
android:configChanges=“keyboardHidden|orientation|screenSize”
android:exported=“true”
android:screenOrientation=“portrait”
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
qq精简版:
<activity
android:name=“com.umeng.qq.tencent.AuthActivity”
android:launchMode=“singleTask”
android:noHistory=“true” >
<activity
android:name=“com.umeng.qq.tencent.AssistActivity”
android:screenOrientation=“portr
ait”
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges=“orientation|keyboardHidden|screenSize”/>
qq完整版:
<activity
android:name=“com.tencent.tauth.AuthActivity”
android:launchMode=“singleTask”
android:noHistory=“true” >
<activity
android:name=“com.tencent.connect.common.AssistActivity”
android:screenOrientation=“portrait”
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges=“orientation|keyboardHidden|screenSize”/>
5、配置友盟key及三方key
建立一个application文件,注意要在AndroidManifest文件中配置(如果本身已有,不需要重新建立):
<application
android:allowBackup=“true”
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl=“true”
android:name=".App"
android:theme="@style/AppTheme">
在application里面进行umeng的第三方key配置
这里作为示例,只配置了微信、QQ/Qzone、新浪的三方appkey,如果使用其他平台,在这里增加对应平台key配置
把前面在其他平台获取的key
public class App extends Application{
{
PlatformConfig.setWeixin(“wx967daebe835fbeac”, “5bb696d9ccd75a38c8a0bfe0675559b3”);
PlatformConfig.setQQZone(“100424468”, “c7394704798a158208a74ab60104f0ba”);
PlatformConfig.setSinaWeibo(“3921700954”, “04b48b094faeb16683c32669824ebdad”, “http://sns.whalecloud.com“);
}
}
当然初始化操作也放在application里面进行@Override
public void onCreate() {
super.onCreate();
UMShareAPI.get(this);
}
6、 将文件夹中的签名文件放入到工程中,这个不再赘述。
四,登录集成
1、登录的集成很简单,直接调用方法即可
第三方登录包含两种使用场景:
获取用户资料的授权接口,使用该接口可以获取该三方平台返回的所有资料(包括姓名,性别,头像等)
三方授权,开发者调用授权接口,可以获取accesstoken相关的信息,但是没有用户资料(姓名,性别,头像等),需要开发者根据token自己去请求用户资料,对于保密性要求较高的用户可以使用。 目前支持第三方登录的平台包括:
国内平台(微信、新浪微博、QQ、豆瓣、人人)
国外平台(Facebook、Twitter、linkedIn、kakao、VKontakte、Dropbox)
这里推荐直接使用第一种方式实现,因为本质上三方登录最终都需要拉取三方平台的用户资料,从这点来说,直接调用SDK和通过后台服务器请求,安全性是一样的
mShareAPI.getPlatformInfo(UserinfoActivity.this, SHARE_MEDIA.SINA, umAuthListener);
SHARE_MEDIA.SINA写入你需要的平台,umAuthListener是回调方法
UMAuthListener authListener = new UMAuthListener() {
/**
-
@desc 授权开始的回调
-
@param platform 平台名称
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
-
@desc 授权成功的回调
-
@param platform 平台名称
-
@param action 行为序号,开发者用不上
-
@param data 用户资料返回
*/
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
);
SHARE_MEDIA.SINA写入你需要的平台,umAuthListener是回调方法
UMAuthListener authListener = new UMAuthListener() {
/**
-
@desc 授权开始的回调
-
@param platform 平台名称
*/
@Override
public void onStart(SHARE_MEDIA platform) {
}
/**
-
@desc 授权成功的回调
-
@param platform 平台名称
-
@param action 行为序号,开发者用不上
-
@param data 用户资料返回
*/
@Override
public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {
标签:name,登录,umeng,平台,platform,详解,跳转,android,com 来源: https://blog.csdn.net/wq221aas/article/details/122760466