TL; DR:
IntentFilter
не перехватывает URL-адрес, когда авторизация LinkedIn завершена и происходит переход к URL-адресу перенаправления.
Похоже, IntentFilter
не может перехватить URL такой, только если открыта новая вкладка, а не при навигации.
И поскольку LinkedIn принимает только URL-адреса перенаправления с HTTP / HTTPS, я как бы заблокирован в этом вопросе. Мое единственное решение сейчас состоит в том, чтобы использовать WebView
.
Я пытаюсь добавить кнопку «Войти через LinkedIn» в мое приложение Xamarin.Forms
. Я использую Xamarin.Auth
с подходом Custom Tabs
.
Это означает, что для получения результата логин + авторизация мне нужно использовать IntentFilter. Аутентификация с использованием Google работает, так как я скопировал ее отсюда , но аутентификация с использованием LinkedIn не перехватывается IntentFilter
.
Я не уверен, что не так. Возможно, URL-адрес перенаправления неверен, или, возможно, у моего IntentFilter
есть какая-то проблема.
Я пытался использовать разные URL, даже localhost:PORT
, но безуспешно.
IntentFilter:
[Activity(Label = "LinkedInInterceptorActivity", NoHistory = true, LaunchMode = LaunchMode.SingleTop)]
[IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable },
DataSchemes = new[] { "http", "https" }, DataHost = "www.linkedin.com", DataPath = "/Act/Callback")]
public class LinkedInInterceptorActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
//Convert Android.Net.Url to Uri
var uri = new Uri(Intent.Data.ToString());
//Load redirectUrl page
Global.Authenticator.OnPageLoading(uri);
var intent = new Intent(this, typeof(MainActivity));
intent.SetFlags(ActivityFlags.ClearTop | ActivityFlags.SingleTop);
StartActivity(intent);
Finish();
}
}
Конфигурация LinkedIn: