Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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);
        }