static void ExtractAppLinkData(NSUrl url) { var result = new List <Data>(); var rurl = new Rivets.AppLinkUrl(url.ToString()); if (rurl != null) { foreach (var param in rurl.InputQueryParameters) { result.Add(new Data(param.Key, param.Value)); } } OnAppLinkReceived?.Raise(result); }
static void GetAppLinkDatas(Tuple <IActivatedEventArgs, Windows.UI.Xaml.Window> args) { var result = new List <Data>(); var rootFrame = args.Item2.Content as Frame; if (rootFrame == null) { rootFrame = new Frame(); } args.Item2.Content = rootFrame; if (args.Item1.Kind == ActivationKind.Protocol) { var protocolArgs = args.Item1 as ProtocolActivatedEventArgs; if (!string.IsNullOrEmpty(protocolArgs.Uri.Query)) { var queries = protocolArgs.Uri.Query.Replace("?", string.Empty).Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries); foreach (var query in queries) { if (!query.Contains("=")) { continue; } var parameter = query.Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries); result.Add(new Data(parameter[0], parameter[1])); } } else { result.AddRange(UriToData(protocolArgs.Uri)); } } OnAppLinkReceived?.Raise(result); args.Item2.Activate(); }
static void ExtractAppLinkData(Android.Content.Intent intent) { var result = new List <Data>(); if (intent.HasExtra("al_applink_data")) { var appLinkData = intent.GetStringExtra("al_applink_data"); var appLinkUrl = new Rivets.AppLinkUrl(intent.Data.ToString(), appLinkData); if (appLinkUrl != null) { foreach (var param in appLinkUrl.InputQueryParameters) { result.Add(new Data(param.Key, param.Value)); } } } else if (Uri.TryCreate(intent.DataString, UriKind.Absolute, out Uri uri)) { result.AddRange(UriToData(uri)); } OnAppLinkReceived?.Raise(result); }