第三方登录+分享

来源:互联网 发布:开淘宝网店心得 编辑:程序博客网 时间:2024/04/29 23:24

1.开发者中心——sdk与文档-ushare分享-sdk下载-5.1.2

2.获得友盟appkey(在个人中心那里点击-创建新应用--配置完毕后在--下载SDK并添加代码里可以看到)

3.将文件夹中的'main/libs'和'main/res'文件夹复制到你的项目工程根目录下

4.如果配置QQ那么就要把qq对应的资源也复制到项目工程根目录下

5.在mainfest中其中key需要配置

   a.权限

<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.INTERNET" /><uses-permission android:name="android.permission.READ_LOGS" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="android.permission.SET_DEBUG_APP" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.GET_ACCOUNTS" /><uses-permission android:name="android.permission.USE_CREDENTIALS" /><uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

   b.本来的活动和keykey需要配置

<activity           android:name="com.umeng.socialize.editorpage.ShareActivity"android:theme="@style/Theme.UMDefault"android:excludeFromRecents="true"/>
<meta-dataandroid:name="UMENG_APPKEY"android:value="4eaee02c527015373b000003" ></meta-data>

   c.需要登录哪一个就需要配置哪一个的activity例如QQ

<activity  android:name="com.tencent.tauth.AuthActivity"  android:launchMode="singleTask"  android:noHistory="true" ><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent100424468" /></intent-filter></activity><activity              android:name="com.tencent.connect.common.AssistActivity"    android:screenOrientation="portrait"    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

   

6. 各个平台的配置,建议放在全局Application或者程序入口在平台的入口

PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");       //微信 appid appsecretPlatformConfig.setSinaWeibo("3921700954","04b48b094faeb16683c32669824ebdad");       //新浪微博 appkey appsecretPlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");         // QQ和Qzone appid appkey     PlatformConfig.setAlipay("2015111700822536");        //支付宝 appidPlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");        //易信 appkey      PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");        //Twitter appid appkeyPlatformConfig.setPinterest("1439206");        //Pinterest appid PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");        //来往 appid appkey


7.在java代码中设置全局变量

UMShareAPI  mShareAPI = UMShareAPI.get(this);
private UMAuthListener umAuthListener = new UMAuthListener() {        @Override        public void onComplete(SHARE_MEDIA platform, int action, Map<String, String> data) {            Toast.makeText( getApplicationContext(), "Authorize succeed", Toast.LENGTH_SHORT).show();        }        @Override        public void onError(SHARE_MEDIA platform, int action, Throwable t) {            Toast.makeText( getApplicationContext(), "Authorize fail", Toast.LENGTH_SHORT).show();        }        @Override        public void onCancel(SHARE_MEDIA platform, int action) {            Toast.makeText( getApplicationContext(), "Authorize cancel", Toast.LENGTH_SHORT).show();        }    };


8.在点击事件中触发的事件就是

SHARE_MEDIA platform = SHARE_MEDIA.QQ; mShareAPI.doOauthVerify(this, platform, umAuthListener)


9.重写方法

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

10.获取信息也可以用接口获得,但是需要重写接口

mShareAPI.getPlatformInfo(UserinfoActivity.this, platform, umAuthListener1);                       String screen_name = data.get("screen_name");            String profile_image_url = data.get("profile_image_url");


11.如果要分享,那么需要变量

final SHARE_MEDIA[] displaylist = new SHARE_MEDIA[]                        {                            SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.SINA,                            SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE,SHARE_MEDIA.DOUBAN                        };

分享的方是

<p>//图片(url)</p><pre lang="java"><code class="hljs java">UMImage image = <span class="hljs-keyword"><span class="hljs-keyword">new</span></span> UMImage(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>, <span class="hljs-string"><span class="hljs-string">"http://www.umeng.com/images/pic/social/integrated_3.png"</span></span>);</code>

<p>//图片(本地资源引用)</p><pre lang="java"><code class="hljs java">UMImage image = <span class="hljs-keyword"><span class="hljs-keyword">new</span></span> UMImage(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,                BitmapFactory.decodeResource(getResources(), R.drawable.image));</code>
// 分享的方法
new ShareAction(this).setDisplayList( displaylist )                        .withText( "呵呵" )                        .withTitle("title")                        .withTargetUrl("http://www.baidu.com")                        .withMedia( image )                        .setListenerList(umShareListener)                        .open();
// 里边的接口
<span class="hljs-keyword"><span class="hljs-keyword">new</span></span> UMShareListener() {        <span class="hljs-annotation"><span class="hljs-annotation">@Override</span></span>        <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">public</span></span></span><span class="hljs-function"> </span><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">void</span></span></span><span class="hljs-function"> </span><span class="hljs-title"><span class="hljs-function"><span class="hljs-title">onResult</span></span></span><span class="hljs-params"><span class="hljs-function"><span class="hljs-params">(SHARE_MEDIA platform)</span></span></span><span class="hljs-function"> </span></span>{            Toast.makeText(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,platform + <span class="hljs-string"><span class="hljs-string">" 分享成功啦"</span></span>, Toast.LENGTH_SHORT).show();        }        <span class="hljs-annotation"><span class="hljs-annotation">@Override</span></span>        <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">public</span></span></span><span class="hljs-function"> </span><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">void</span></span></span><span class="hljs-function"> </span><span class="hljs-title"><span class="hljs-function"><span class="hljs-title">onError</span></span></span><span class="hljs-params"><span class="hljs-function"><span class="hljs-params">(SHARE_MEDIA platform, Throwable t)</span></span></span><span class="hljs-function"> </span></span>{            Toast.makeText(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,platform + <span class="hljs-string"><span class="hljs-string">" 分享失败啦"</span></span>, Toast.LENGTH_SHORT).show();        }        <span class="hljs-annotation"><span class="hljs-annotation">@Override</span></span>        <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">public</span></span></span><span class="hljs-function"> </span><span class="hljs-keyword"><span class="hljs-function"><span class="hljs-keyword">void</span></span></span><span class="hljs-function"> </span><span class="hljs-title"><span class="hljs-function"><span class="hljs-title">onCancel</span></span></span><span class="hljs-params"><span class="hljs-function"><span class="hljs-params">(SHARE_MEDIA platform)</span></span></span><span class="hljs-function"> </span></span>{            Toast.makeText(ShareActivity.<span class="hljs-keyword"><span class="hljs-keyword">this</span></span>,platform + <span class="hljs-string"><span class="hljs-string">" 分享取消了"</span></span>, Toast.LENGTH_SHORT).show();        }    };




0 0
原创粉丝点击