7.腾讯微博Android客户端开发——自动获取验证

系统 1961 0
通过前面的介绍,我们成功获取了AccessToken ,但是在该过程中有个不好的地方:用户输入完 QQ 信息后,需要记录验证码,然后返回至 Activity 手动输入验证码,这将会使我们的程序显得非常不友好。我们能不能让程序自动获取到平台返回过来的验证码,而不需要用户手动收入呢?通过参考其它资料,找到了两种解决方法,本次和大家分享第一种解决方案。

在进行正题之前,我们先来做一个简单的实验。下面是我编写的一个简单的测试网页,其中包含两个链接,第一个链接比较容易理解,点击后跳转到百度,第二个链接如果在我们的 PC 浏览器点击肯定会提示找不到网页,但是放在 Android 系统中呢?下面我们来进行测试。

创建一个 Android 项目,其中 MainActivity 界面如下:

7.腾讯微博Android客户端开发——自动获取验证码(1)

同时“打开”按钮进行如下操作:

运行模拟器。点击“打开”按钮,点击“启动 Android ”链接并没有任何效果,在 Logcat 下输出如下错误信息:


下再添加一个 <intent-filter>

添加完毕后当我们再次运行模拟器。点击“打开”按钮,点击“启动 Android ”链接后我们发现我们的又回到了 MainActivity 注意我们是通过浏览器启动 Activity 。下面我们需要处理的就是获取请求的路径,也就是android://MainActivity?id=coolszy 。这时我们可以复写 Activity 种的 onNewIntent() 方法,不熟悉的朋友可以百度了解该方法。我们都知道 Activity 之间信息的传递时通过 Intent 对象,因此通过该方法中的 Intent 对象,我们可以获得请求的路径,最终获得请求的参数信息:

注:如果想让该方法执行,我们需修改 AndroidManifest.xml 文件中 MainActivity 的配置,添加 android:lauchMode 属性:

此时当我们再次运行模拟器。点击“打开”按钮,点击“启动 Android ”链接后我们发现我们的回到了 MainActivity 上,同时也得到了参数。

7.腾讯微博Android客户端开发——自动获取验证码(1)

我们在总结下这个实验:这个实验的主要目的是学习如何从浏览器种启动一个 Activity ,首先我们要给相关的 Activity 添加一个 <intent-filter> ,其次通过复写 onNewIntent() 方法得到返回信息,如果想要被 onNewIntent() 调用,我们还行给其 Activity 添加一个 android:lauchMode 属性。

下面我们回归到本次主题,在 OAuth 认证第一步种有个 oauth_callback 参数,作用是认证成功后浏览器会被重定向到这个 url 中,如果我们 url 设置为 http://www.baidu.com ,则会定位到 http://www.baidu.com ,同样,如果我们把 url 设置为 android://MainActivity ,则会定位到 android://MainActivity 上,如果 Activity 再加上 <intent-filter> ,这时 MainActivity 就可以自动获取到验证码,而不需要我们手动的输入。

首先,设置我们的oauth_callback 参数:

注:android://MainActivity 之所以使用 encode()是应为我在测试时发现当我们传递的 url 包含有“ : ”、“ // ”等符号会返回 401 错误,因此在这里进行 encode()

其次,修改AndroidManifest.xml 文件中 MainActivity 配置:

同时给复写 MainActivity onNewIntent() 方法,用于接收传递过来的参数信息:

至此我们的程序就能自动的获取验证码,而不需要用户手动的输入。

课程下载地址: http://u.115.com/file/dn43kklr

文档下载地址: http://download.csdn.net/source/3430433

源码下载地址: http://u.115.com/file/aq2vc8m4

7.腾讯微博Android客户端开发——自动获取验证码(1)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论