android 微博登录与分享集成
除了QQ与微信等两种常用的第三方登录,我们身边可能最能够接触的第三种三方登录也就是新浪微博登录了,但是我感觉身边用新浪微博的人儿并不是很多,感觉微博用户大多数是追星族,哈哈,可能是自己的误解吧,下面我们就来看一下android端怎么来集成微博登录和分享。我这里的应用场景是提供一个接口给h5调用。做的是混合开发,不过不管是那种,集成思路也一样。需要注意的是微博分享比较坑,大图片分享失败,分享是先把图片下载到本地,然后在从本地分享出去,而且小图片可以分享,大图片分享就闪退,应该是微博分享有对图片做限制吧,这我感觉算新浪微博的bug,但是感觉他们也不在意这个问题。毕竟微博用户现在并不是很多,反正我身边人都不喜欢用。
一、在微博开放平台上注册自己的应用,获取应用的APP_KEY, 注册过程就不多说了,大家都会的
二、首先看下项目截图
三、build.gradle里面加入微博登录所需要的包
五、new_file.html里面的html就不贴出来了,就是简单的按钮然后js调用android,然后在JavaScriptUtils里面android回调js返回结果。JavaScriptUtils是这样申明接口的
一、在微博开放平台上注册自己的应用,获取应用的APP_KEY, 注册过程就不多说了,大家都会的
二、首先看下项目截图
![](https://i-blog.csdnimg.cn/blog_migrate/476c693403b1b7d5ba6e9cf284fe8711.png)
三、build.gradle里面加入微博登录所需要的包
// 微博登录 compile 'com.sina.weibo.sdk:core:4.2.7:openDefaultRelease@aar'三、AndroidManifest.xml加入所需要的网络权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
四、Constant类
package com.iwiteks.PalmarTourism.util; /** * Created by spirits on 2018/3/20. */ public class Constant { /** 当前 DEMO 应用的 APP_KEY,第三方应用应该使用自己的 APP_KEY 替换该 APP_KEY */ public static final String APP_KEY = "*************"; /** * 当前 DEMO 应用的回调页,第三方应用可以使用自己的回调页。 * 建议使用默认回调页:https://api.weibo.com/oauth2/default.html */ public static final String REDIRECT_URL = "http://www.sina.com"; /** * WeiboSDKDemo 应用对应的权限,第三方开发者一般不需要这么多,可直接设置成空即可。 * 详情请查看 Demo 中对应的注释。 */ public static final String SCOPE = "email,direct_messages_read,direct_messages_write," + "friendships_groups_read,friendships_groups_write,statuses_to_me_read," + "follow_app_official_microblog," + "invitation_write"; }
五、new_file.html里面的html就不贴出来了,就是简单的按钮然后js调用android,然后在JavaScriptUtils里面android回调js返回结果。JavaScriptUtils是这样申明接口的
public static final int WEIBO_LOGIN = 6009; public static final int WEIBO_SHARE = 6010; /** * 微博登录 */ @JavascriptInterface public void