Exemplo n.º 1
0
        public static void HandleProtocolLaunch(ProtocolActivatedEventArgs protocolArgs)
        {
            if (protocolArgs.Uri.OriginalString.StartsWith("vk") && protocolArgs.Uri.OriginalString.Contains("://authorize"))
            {
                var launchUriDecoded = protocolArgs.Uri.ToString();
                launchUriDecoded = launchUriDecoded.Replace("authorize/#", "authorize/?");

                var innerQueryParamsString = VKUtil.GetParamsOfQueryString(launchUriDecoded);

                VKSDK.ProcessLoginResult(innerQueryParamsString, false, null);
            }
        }
        public static bool HandleUri(Uri uri)
        {
            var tempUriStr = uri.ToString();

            if (tempUriStr.StartsWith("/Protocol"))
            {
                var outerQueryParamsString = VKUtil.GetParamsOfQueryString(tempUriStr);

                if (!string.IsNullOrEmpty(outerQueryParamsString))
                {
                    var outerQueryParams = VKUtil.ExplodeQueryString(outerQueryParamsString);
                    if (outerQueryParams.ContainsKey("encodedLaunchUri"))
                    {
                        var launchUriEncoded = outerQueryParams["encodedLaunchUri"];

                        var launchUriDecoded = WebUtility.UrlDecode(launchUriEncoded);

                        if (launchUriDecoded.StartsWith("vk") && launchUriDecoded.Contains("://authorize"))
                        {
                            launchUriDecoded = launchUriDecoded.Replace("authorize/#", "authorize/?");

                            var innerQueryParamsString = VKUtil.GetParamsOfQueryString(launchUriDecoded);

                            VKSDK.ProcessLoginResult(innerQueryParamsString, false, null);

                            return(true);
                        }
                        else
                        {
                            // default start
                            return(true);
                        }
                    }
                }
            }
            return(false);
        }