这是我的问题,我想从用户那里授权我的应用程序。
为此,API 为我提供了 OAuth 2.0 流程
我有一个链接“ A ”,其中包含我的应用程序密钥和重定向链接
eg. REDIRECT_LINK
链接 A 在浏览器中打开时要求用户提供用户名和密码并授权我的应用程序,成功授权后用户将被重定向到REDIRECT_LINK
the REDIRECT_LINK
用我需要存储在变量中的密钥进行编码
eg. https://www.twitter.com/some_profile https://www.twitter.com/some_profile?key=Asc545AS454dS44as
我不希望用户访问重定向链接,我只想获取网址进而关闭浏览器, 该页面不应打开.
我已使用此代码在浏览器中打开链接
Intent httpIntent = new Intent(Intent.ACTION_VIEW);
httpIntent.setData(Uri.parse("LINK_A"));
startActivity(httpIntent);
如果您在 WebView 中打开页面,您的应用程序可以监听任何 URL 更改shouldOverrideUrlLoading() http://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading%28android.webkit.WebView,%20java.lang.String%29打回来。
如果您更喜欢打开股票浏览器,您可以启动一项服务来定期轮询最新的 URL:
String lastDate = "0";
…
String newDate = Long.toString(Calendar.getInstance().getTimeInMillis());
Cursor cursor = context.getContentResolver().query(
Browser.BOOKMARKS_URI,
Browser.HISTORY_PROJECTION,
Browser.BookmarkColumns.DATE + " IS NOT NULL AND " + Browser.BookmarkColumns.DATE + " > ?",
lastDate,
Browser.BookmarkColumns.DATE + " DESC");
if (cursor.moveToNext()) {
String url = cursor.getString(Browser.HISTORY_PROJECTION_URL_INDEX);
}
cursor.close();
lastDate = newDate; // update the timestamp
当您发现url
符合您预期的更改,您可以切换到您的活动并在应用程序的上下文中继续。
可以关闭浏览器,但从最终用户的角度来看,这可能不礼貌。想象一下,例如,她打开了 5 个包含重要信息的选项卡,而这一切都被破坏了!
注意这个方法可以使用 https://stackoverflow.com/a/15240622/192373对于 Chrome 浏览器,内容提供商略有不同:内容://com.android.chrome.browser/bookmarks
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)