[我在Xamarin中這樣做,但我懷疑答案並不重要,因爲Xamarin公開的API與本地Java差不多,授權流程(無隱含授權)。這需要打開瀏覽器,做身份驗證,然後不做密鑰交換。你會認爲這很容易。這是我下面的內容。如何在Android版Chrome中打開並自動關閉OAuth頁面?
這樣做的問題是,瀏覽器頁面在用戶登錄後支左右。我如何讓它消失?
public void Authenticate()
{
var sb = new StringBuilder();
sb.Append("https://accounts.google.com/o/oauth2/v2/auth");
sb.Append("?client_id=<MY ID HERE>");
sb.Append("&response_type=code");
sb.Append("&scope=openid%20email");
sb.Append("&redirect_uri=<MY PACKAGE NAME HERE>:/oauth2redirect");
var url = sb.ToString();
var uri = Android.Net.Uri.Parse("googlechrome://navigate?url=" + url);
try
{
System.Diagnostics.Debug.WriteLine(uri.ToString());
Intent i = new Intent(Intent.ActionView, uri);
i.AddFlags(ActivityFlags.NewTask);
i.AddFlags(ActivityFlags.SingleTop);
i.AddFlags(ActivityFlags.ClearTop);
i.AddFlags(ActivityFlags.NoHistory);
Android.App.Application.Context.StartActivity(i);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex.Message);
}
}
相關:
Is there any way in Android to force open a link to open in Chrome?
Redirect page doesn't automatically close after successful OAuth authorization
我有部分工作,其中REDIRECT_URI回來我的應用程序和意圖過濾撿起來。從應用中的意圖過濾器/活動回來,有沒有辦法讓Chrome關閉該選項卡? – 010110110101
構建您的意圖時,請嘗試使用'SingleTask'而不是'SingleTop' – Jon