Android进阶2之oauth认证中UC无法跳转的问题

原创 2012年03月26日 20:28:13

在开发新浪微博,网易微薄,搜狐微博等等android客户端的时候需要oauth认证,也就是要打开一个第三方提供的认证网页进行授权。

用户在授权之后会再跳转回应用完完成授权。在请求用户授权的时候会提供一个callback地址,用户完成授权操作后会跳转回这个地方一般是某个Activity。

但由于某些原因第三方浏览器例如UC浏览器无法完成跳转,系统自带浏览器却可以。

本博文就给出一个解决方案来解决这个问题。

Intent i=new Intent();
 
i.setAction(Intent.ACTION_VIEW,Uri.parse("http://veikr.com"));
 
startActivity(i);
来打开某个网址。如果你的手机上没有第三方的浏览器例如UC等你可以正常使用,但是很不幸的是一般手机用户都会安装UC浏览器。

第三方浏览是无法支持自定义schema的(比如myapp://AuthActivity)。

 <activity
            android:name=".AuthActivity"
            android:label="@string/app_name"
            android:launchMode="singleTask" >
            <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:host="AuthActivity"
                    android:scheme="myapp" />
            </intent-filter>
        </activity>
 <data
                    android:host="AuthActivity"
                    android:scheme="myapp" />

我们既不想卸载掉我们的UC,又想完成认证怎么办呢?

看看以下的方法:

Intent intent = new Intent();
			ComponentName name = new ComponentName("com.android.browser", "com.android.browser.BrowserActivity");
			intent.setComponent(name);
			intent.setData(Uri.parse(authUrl));
			intent.setAction(Intent.ACTION_VIEW);
			activity.startActivity(intent);

anthUrl是Url网址。

你需要把”myapp://AuthActivity”作为callback传递给新浪的oauth认证地址,在完成认证后会返回这个地址,然后你的应用程序就会跳到这个AuthActivity中去在oncreate中使用getIntent().getData()就可以得到uri,pin就在uri中。



版权声明:本文为博主原创文章,未经博主允许不得转载。

Android之QQ授权登录获取用户信息

有时候我们开发的app需要方便用户简单登录,可以让用户使用自己的qq、微信、微博登录到我们自己开发的app。 今天就在这里总结一下如何在自己的app中集成QQ授权登录获取用户信息的功能。 首先我们...

OAuth2.0错误响应中的错误码

OAuth2.0错误响应中的错误码定义如下表所示: 错误码(error) 错误编号(error_code) 错误描述(error_description) ...

Android进阶2之WebView(浏览器)

一 概述 WebView是一个显示网页的视图。它依据于你自己的网页浏览器或者只是显示在你的Activity中的内容。 它使用了WebKit渲染引擎显示网页。它包括一些方法:通过浏览记录向前和向后浏...
  • SJF0115
  • SJF0115
  • 2012年03月25日 22:26
  • 4268

ImageLoader使用的DiskLruCache硬盘缓存算法

转载自:简书的排版 最近在研究ImageLoader的源码,发现一个硬盘缓存比较通用的类,这个类不属于谷歌官方却受官方亲睐,基本硬盘缓存都可以利用这个类来实现。 我们先来说一下缓存记录文件jour...

Android进阶2之新浪微博采用Oauth发送图片和文字

本以为新浪发布图片和发布文字一样的简单,但很悲剧。。。。。。。远不是想象的那样。 现在分享一下代码。 /** * 发表带图片的微博 * * @param token * @p...
  • SJF0115
  • SJF0115
  • 2012年04月06日 16:26
  • 2130

新浪开放平台---oauth2认证流程 casperjs自动登录和授权 api需要注意的问题及bug

官网 http://open.weibo.com/ API http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2 SDK http://open.w...

新浪开放平台---oauth2认证流程 casperjs自动登录和授权 api需要注意的问题及bug

转自:http://blog.csdn.net/xiarendeniao/article/details/7482533 官网 http://open.weibo.com/ API...
  • sqzhao
  • sqzhao
  • 2015年10月29日 15:54
  • 1060

巧解傲游插件OAUTH的跳转问题

在前面的新浪微博开放平台历险一文中,提到了开发浏览器微博插件时,如果要进行OAUTH认证时,为了避免跳转到本地页面,实现方式是通过新浪微博的callback=json方式,前台让用户输入用户名和密码,...
  • hfahe
  • hfahe
  • 2011年01月26日 15:05
  • 1788

android 跳转指定浏览器访问指定页面(支持UC、Opera、QQ、Dolphin、Skyfire、Steel、Google)

先看一下系统浏览器com.android.browser 启动类在AndroidManifest.xml 中的声明: [xhtml] view plaincopyprint? ...

网站开发进阶(三十七)JSP页面跳转问题解决

JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用。前言      在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况。但是项目在本地未出现...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android进阶2之oauth认证中UC无法跳转的问题
举报原因:
原因补充:

(最多只允许输入30个字)