- 创建您自己的 WebViewClient 子类。
- 覆盖 shouldOverrideUrlLoading(WebView view, String url) 方法。
- 在 shouldOverrideUrlLoading() 中,检查 url.startsWith(YOUR_CALLBACK_URL) 是否为真。
- 如果为 true,则从 URL 中检索“oauth_verifier”参数并返回 true(来自 shouldOverrideUrlLoading() 的 true 会阻止 WebView 实例加载 URL)。
- 使用步骤 4 中获取的参数值获取访问令牌。
在第 4 步之后,您的应用程序可以从 WebView 实例中取回控制权。
如果上述步骤听起来很麻烦,请尝试TwitterOAuthView。它的用法很简单。打电话
view.start(CONSUMER_KEY, CONSUMER_SECRET, CALLBACK_URL, true, listener);
并通过如下定义的 TwitterOAuthView.Listener 接口接收结果。
void onSuccess(TwitterOAuthView view, AccessToken accessToken);
void onFailure(TwitterOAuthView view, TwitterOAuthView.Result result);
如果将 true 作为第四个参数赋予 TwitterOAuthView.start() 方法,则 TwitterOAuthView 不会访问回调 URL,我认为这种行为是您想要实现的。源代码TwitterOAuthView.java可能会有所帮助。