private void WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) {

            mProgressBar.Visibility = Visibility.Visible;

            Log.d(args.Uri);
            if (args.Uri.ToString().Contains("facebook.com")) {
                args.Cancel = true;
                return;
            }

            if (!skip && args.Uri.ToString().Contains("/users/auth/osm/callback")) {
                skip = true;
                args.Cancel = true;

                Task.Run(() => {
                    Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => {
                        HttpRequestMessage request = new HttpRequestMessage();
                        request.RequestUri = args.Uri;
                        request.Headers.Add("Install-ID", Prefs.InstallId);
                        // use a custom user agent to change the behavior of the website
                        request.Headers.Add("User-Agent", WebViewUtils.CreateAppsUserAgent());
                        mWebView.NavigateWithHttpRequestMessage(request);
                    }).Forget();
                });
            }
            
        }
예제 #2
0
 private void loginWeb_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     if (args.Uri.AbsoluteUri.Contains("#"))
     {
         if (args.Uri.Fragment.StartsWith("#access_token="))
         {
             loginWeb.Stop();
             string token = args.Uri.Fragment.Replace("#access_token=", string.Empty);
             ApplicationData.Current.LocalSettings.Values[SharedStrings.AccessTokenKeyValue] = token;
             SharedStrings.CurrentToken = token;
             if (!fromMain)
             {
                 if (!Frame.Navigate(typeof(MainPage)))
                 {
                 }   
             }
             else
             {
                 if (Frame.CanGoBack)
                 {
                     Frame.GoBack();
                 }
             }
         }
     }
 }
예제 #3
0
        private async void MainWebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
        {
            try
            {
                // is coming from click on page
                if (_isFromNavigationButton == false && args.Uri != null)
                {
                    if (ViewModel.ParseLinksPages)
                    {
                        args.Cancel = true;

                        await ViewModel.LoadCurrentPageAsync(args.Uri.ToString());
                        NavigateToCurrentPage(false);
                    }
                    else
                    {
                        await ViewModel.LoadCurrentPageAsync(args.Uri.ToString());
                    }
                }

                _isFromNavigationButton = false;
            }
            catch (Exception ex)
            {
                // TODO: handle it properly
            }
        }
예제 #4
0
		private void Web_OnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
		{
			// WebView native object must be inserted in the OnNavigationStarting event handler
			KeyHandler winRTObject = new KeyHandler();
			// Expose the native WinRT object on the page's global object
			Web.AddWebAllowedObject("NotifyApp", winRTObject);
		}
예제 #5
0
 /// <summary>
 /// Set the 
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 private void LoginWebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     if (args.Uri.ToString().StartsWith(String.Format("{0}oauth/authorize/",coinbase["url"]))) //This passes after the user has signed in, and the web view is navigated to JSON for the app to use.
     {
         string authCode = args.Uri.ToString().Split('/').Last();
         Login(authCode);    //Use the Authorization Code to grab an access key, and set up the user's wallet.
     }
 }
 /// <summary>
 /// Compares the URI to the attempted WebView navigation URI.
 /// If they are different, cancels the WebView navigation, opens the URI 
 /// in the browser, and returns true; otherwise, returns false.
 /// </summary>
 public static async Task<bool> LaunchBrowserForNonMatchingUriAsync(
     this Uri uriToMatch, WebViewNavigationStartingEventArgs e)
 {
     if (e.Uri.WithoutScheme() == uriToMatch.WithoutScheme()) return false;
     e.Cancel = true;
     await Launcher.LaunchUriAsync(e.Uri);
     return true;
 }
예제 #7
0
 private async void OnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     if (args.Uri != null)
     {
         args.Cancel = true;
         await Launcher.LaunchUriAsync(args.Uri);
     }
 }
예제 #8
0
 private async void webView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     // Opens links in the Internet Explorer and not in the webView.
     if (args.Uri != null && args.Uri.AbsoluteUri.StartsWith("http"))
     {
         args.Cancel = true;
         await Launcher.LaunchUriAsync(new Uri(args.Uri.AbsoluteUri));
     }
 }
 private void OnNavigationStarting(object sender, WebViewNavigationStartingEventArgs e)
 {
     if (Command?.CanExecute(null) == true)
     {
         var args = new Models.NavigationArgs { Uri = e.Uri.AbsoluteUri };
         Command.Execute(args);
         e.Cancel = args.Cancel;
     }
 }
예제 #10
0
 void webView1_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     string url = "";
     try { url = args.Uri.ToString(); }
     finally
     {
         pageIsLoading = true;
     }
 }
예제 #11
0
        private void webView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
        {
            if (args.Uri.Host == _redirectUri.Host)
            {
                txtResponse.Text = args.Uri.ToString();
                webView.Visibility = Visibility.Collapsed;

                _redirectUri = null;
            }
        }
예제 #12
0
        private async void OnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
        {

            if (args.Uri != null)
            {
                args.Cancel = true;
                var options = new LauncherOptions() { TreatAsUntrusted = false };
                await Windows.System.Launcher.LaunchUriAsync(args.Uri, options);
            }
        }
예제 #13
0
 private void OnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     var webView = sender as WebView;
     if (webView != null && args?.Uri != null)
     {
         var uri = args.Uri;
         args.Cancel = true;
         Launcher.LaunchUriAsync(uri);
     }
 }
 protected void WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) {
     if (args.Uri.AbsoluteUri != arguments?.Url) {
         if ((arguments?.ShowExternalLinkInBrowser ?? false)) {
             Launcher.LaunchUriAsync(args.Uri).Forget();
             args.Cancel = true;
             return;
         }
     }
     mProgressBar.Visibility = Visibility.Visible;
 }
        private void HandleNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
        {
            progressBar.Visibility = Visibility.Visible;
            progressBar.IsIndeterminate = true;

            var uri = args.Uri;
            UnityPlayer.AppCallbacks.Instance.InvokeOnAppThread(() =>
            {
                if (_onStart != null)
                    _onStart(uri, _state);
            }, false);
        }
 private async void webBrowser_Navigating(object sender, WebViewNavigationStartingEventArgs e)
 {
     if (e.Uri != null)
     {
         if (e.Uri.OriginalString.EndsWith(".jpg") || e.Uri.OriginalString.EndsWith(".png"))
         {
             e.Cancel = true;
         }
         else if (e.Uri.OriginalString != "post.html")
         {
             e.Cancel = true;
             await Launcher.LaunchUriAsync(e.Uri);
         }
     }
 }
예제 #17
0
 private async void WebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     if (args.Uri.AbsoluteUri.ToString().Contains("code"))
     {
         string code = args.Uri.AbsoluteUri.ToString();
         code = code.Substring(code.IndexOf("=") + 1);
         await GetAccessToken(code);
     }
     else if (args.Uri.AbsoluteUri.ToString().Contains("access_token"))
     {
         string WeicoAccessToken = args.Uri.AbsoluteUri.ToString();
         WeicoAccessToken = WeicoAccessToken.Substring(WeicoAccessToken.IndexOf("=") + 1, 32);
         App.WeicoAccessToken = WeicoAccessToken;
         Frame.GoBack();
     }
 }
		private void WebViewOnNavigationStarting(WebView webView, WebViewNavigationStartingEventArgs args)
		{
			const string portalApprovalMarker = "/oauth2/approval";
			Uri uri = args.Uri;
			if (webView == null || uri == null || _tcs == null || string.IsNullOrEmpty(uri.AbsoluteUri))
				return;

			bool isRedirected = uri.AbsoluteUri.StartsWith(_callbackUrl) ||
				_callbackUrl.Contains(portalApprovalMarker) && uri.AbsoluteUri.Contains(portalApprovalMarker);
			if (isRedirected)
			{
				var tcs = _tcs;
				_tcs = null;
				if (_popup != null)
					_popup.IsOpen = false;
				tcs.SetResult(DecodeParameters(uri));
			}
		}
		// Check if the web browser is redirected to the callback url
		void webBrowser_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
		{
			var webBrowser = sender as WebView;
			Uri uri = args.Uri;
			if (webBrowser == null || uri == null || _tcs == null)
				return;

			if (!String.IsNullOrEmpty(uri.AbsoluteUri) && uri.AbsoluteUri.StartsWith(_callbackUrl))
			{
				// The web browser is redirected to the callbackUrl ==> close the window, decode the parameters returned as 
				// fragments or query, and return these parameters as result of the Task
				var tcs = _tcs;
				_tcs = null;
				if (_popup != null)
					_popup.IsOpen = false;
				tcs.SetResult(DecodeParameters(uri));
			}
		}
		// Check if the web view is redirected to the callback url
		void WebViewOnNavigationStarting(WebView webView, WebViewNavigationStartingEventArgs args)
		{
			const string portalApprovalMarker = "/oauth2/approval";
			Uri uri = args.Uri;
			if (webView == null || uri == null || _tcs == null || string.IsNullOrEmpty(uri.AbsoluteUri))
				return;

			bool isRedirected = uri.AbsoluteUri.StartsWith(_callbackUrl) ||
				_callbackUrl.Contains(portalApprovalMarker) && uri.AbsoluteUri.Contains(portalApprovalMarker); // Portal OAuth workflow with org defined at runtime --> the redirect uri can change
			if (isRedirected)
			{
				// The web view is redirected to the callbackUrl ==> close the window, decode the parameters returned as 
				// fragments or query, and return these parameters as result of the Task
				var tcs = _tcs;
				_tcs = null;
				if (_popup != null)
					_popup.IsOpen = false;
				tcs.SetResult(DecodeParameters(uri));
			}
		}
예제 #21
0
        private void WebView_OnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs e)
        {
            if (config.WhiteList != null && config.Mode == DefenseMode.WhiteListOnly)
            {
                var root = SuperCacheManager.ResolveTargetUri(e.Uri.ToString()).Authority;

                if (config.WhiteList.Count(u => string.Compare(root, u, StringComparison.CurrentCultureIgnoreCase) == 0) == 0)
                {
                    e.Cancel = true;
                    Navigate(new Uri("http://www.catuhe.com/msdn/notAllowedSite/"));
                    return;
                }
            }

            var args = new NavigatingEventArgs(e.Uri.ToString());
            if (SuperCacheManager.OnNavigating(args))
            {
                e.Cancel = true;
                Navigate(args.TargetUri);
            }
        }
예제 #22
0
        private async void AuthView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args) {
            // do something to capture the page
            //System.Diagnostics.Debug.WriteLine("Navigating to " + args.Uri);
            if (args.Uri == LoginURI) {
                // do nothing
                return;
            } else if (args.Uri.ToString().Contains("access_token")) {
                // access token found!
                JsonParser.authToken = args.Uri.ToString().Split(new[] { "access_token=" }, StringSplitOptions.None)[1];
                System.Diagnostics.Debug.WriteLine("Found Access Token: " + JsonParser.authToken);
                // get user ID
                JsonObject data = await JsonParser.getJsonResponse("/users/me", null);
                JsonParser.userID = data.GetNamedObject("response").GetNamedString("id");
                System.Diagnostics.Debug.WriteLine("Your ID: " + JsonParser.userID);


                rootFrame.Navigate(typeof(GroupmeAnalytics.Views.ViewShell));
                Window.Current.Content = rootFrame;
                return;
            }
        }
예제 #23
0
 private void TopicWebView_OnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     if (args.Uri != null && args.Uri.AbsoluteUri.StartsWith(Strings.LocalUriPrefix))
     {
         args.Cancel = true;
         if (args.Uri.AbsoluteUri.Contains("quote"))
         {
             var decoder = new WwwFormUrlDecoder(args.Uri.Query);
             var postId = decoder.FirstOrDefault(x => x.Name == "postId")?.Value;
             if (!string.IsNullOrEmpty(postId))
                 Loc.Topic.ShowEditorCommand.Execute(Loc.Topic.CurrentTopic.TopicNewPostUriForm + $"&numrep={postId}");
         }
         else
         {
             Debug.WriteLine("WW " + args.Uri.Query + "-- " + args.Uri + " -- " + args.Uri.AbsoluteUri);
             string param = args.Uri.Query.Replace("?", "");
             if (Loc.Main.ContextMessageCommand.CanExecute(param))
                 Loc.Main.ContextMessageCommand.Execute(param);
         }
     }
 }
        private async void Web_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
		{
			var split = args.Uri.OriginalString.Split('?');
            if (split.Length > 1 && split[0] == "http://quarr.us/")
            {
				var userId = await TwitterAuthenticator.GetUserId(split[1].Split('&')[0].Split('=')[1], split[1].Split('&')[1].Split('=')[1]);
				UserState.ActiveAccount = await Api.Do.AccountTwitter(long.Parse(userId));
				if (UserState.ActiveAccount == null)
				{
					Frame.Navigate(typeof(CreatePage), new CreatePage.AutofillInfo
						{
							SocialId = long.Parse(userId),
							Authenticator = Authenticator.Twitter
						});
				}
				else
				{
					Frame.Navigate(typeof(MainPage), UserState.CurrentId);
				}
            }
        }
        private void NavigationStarting(WebViewNavigationStartingEventArgs args)
        {
            string authCode = string.Empty;
            string argsUri = args.Uri.AbsoluteUri;

            if (argsUri.IndexOfCaseInsensitive(_authenticationService.RedirectUri) == 0)
            {
                string codeKey = "code=";
                int codeStartIndex = argsUri.IndexOfCaseInsensitive(codeKey);

                if (codeStartIndex > 0)
                {
                    args.Cancel = true;

                    codeStartIndex += codeKey.Length;
                    var segments = argsUri.Substring(codeStartIndex).Split('&');
                    authCode = segments[0];

                    IsLoading = false;

                    InitializeApp(authCode);
                }
            }
        }
예제 #26
0
 private async void ArticleWebView_OnNavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     try
     {
         if (args.Uri != null)
         {
             var uri = args.Uri.ToString();
             var paramIndex = uri.IndexOf('?');
             if (paramIndex != -1)
                 uri = uri.Substring(0, paramIndex);
             args.Cancel = true;
             if (Regex.IsMatch(uri, "anime\\/\\d") ||
                 (Settings.SelectedApiType != ApiType.Hummingbird && Regex.IsMatch(uri, "manga\\/\\d")))
             {
                 var link = uri.Substring(8).Split('/');
                 if (link[3] == "")
                 {
                     if (Settings.ArticlesLaunchExternalLinks)
                     {
                         await Launcher.LaunchUriAsync(args.Uri);
                     }
                     return;
                 }
                 var id = int.Parse(link[2]);
                 if (Settings.SelectedApiType == ApiType.Hummingbird) //id switch            
                     id = await new AnimeDetailsHummingbirdQuery(id).GetHummingbirdId();
                 ViewModelLocator.GeneralMain.Navigate(PageIndex.PageAnimeDetails,
                     new AnimeDetailsPageNavigationArgs(id, link[3], null, null)
                     {
                         AnimeMode = link[1] == "anime"
                     });
             }
             else if (uri.Contains("/profile/"))
             {
                 var vm = ViewModelLocator.MalArticles;
                 ViewModelLocator.NavMgr.RegisterBackNav(PageIndex.PageArticles,new MalArticlesPageNavigationArgs { NewsId = vm.CurrentNews, WorkMode = vm.PrevWorkMode.Value});
                 ViewModelLocator.GeneralMain.Navigate(PageIndex.PageProfile,new ProfilePageNavigationArgs {TargetUser = uri.Split('/').Last()});
             }
             else if (Settings.ArticlesLaunchExternalLinks)
             {
                 await Launcher.LaunchUriAsync(args.Uri);
             }
         }
     }
     catch (Exception)
     {
         args.Cancel = true;
     }
 }
        private void BrowserOnNavigating(WebView sender, WebViewNavigationStartingEventArgs args)
        {
            var url = args.Uri.AbsoluteUri;
            if (url.StartsWith(REDIRECT_URL) && !_processedResult)
            {
                var result = url.Substring(url.IndexOf('#') + 1);

                _processedResult = true;
                VKSDK.ProcessLoginResult(result, _isValidating, _validationCallback);
                this.IsShown = false;
            }
        }
		void wbMain_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
		{
		}
예제 #29
0
 private void InnerWebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
 }
예제 #30
0
 private void Scroll_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
 }
예제 #31
0
 private async void myWebView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     Debug.WriteLine("Navigation Starting");
     if (args.Uri != null)
     {
         myWebView.Stop();
         await Windows.System.Launcher.LaunchUriAsync(args.Uri);
         myWebView.NavigateToString(currentHTML);
         //myWebView.InvokeScript("eval", "document.execCommand('Stop');");
     }
 }
예제 #32
0
 /// <summary>
 /// Event to indicate webview is starting a navigation
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="args"></param>
 void webView1_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
 {
     string url = "";
     try { url = args.Uri.ToString(); }
     finally
     {
         address.Text = url;
         appendLog(String.Format("Starting navigation to: \"{0}\".\n", url));
         pageIsLoading = true;
     }
 }
예제 #33
0
        private async void WebViewNavigationStarting(WebViewNavigationStartingEventArgs args)
        {
            var uri = args.Uri;

            if (uri == null)
            {
                // initial page loading from `NavigateToString`-method.

                return;
            }

            if (uri.AbsoluteUri.StartsWith("about::"))
            {
                // Wikilink
                var link = uri.ToString().Substring(7);

                Logger.Info("Wikilink clicked.");
                Logger.ConditionalDebug($"Wikilink clicked: {link}");

                ViewModel.WikilinkClicked.Execute(Path.ofLink(link));

                args.Cancel = true;
                return;
            }

            if (uri.AbsoluteUri.Contains("about:"))
            {
                // Local link
                Logger.Info("Local link clicked.");

                return;
            }

            if (uri.AbsoluteUri.StartsWith("ms-local-stream:"))
            {
                if (uri.Equals(_uri))
                {
                    // Load the index.html page

                    Logger.Info("Load Wiki page");
                    return;
                }
                else if (uri.LocalPath.StartsWith("/data/:"))
                {
                    // Wikilink
                    var link = uri.AbsolutePath.Substring(7);

                    Logger.Info("Wikilink clicked.");
                    Logger.ConditionalDebug($"Wikilink clicked: {link}");

                    ViewModel.WikilinkClicked.Execute(Path.ofLink(link));

                    args.Cancel = true;
                    return;
                }
                else
                {
                    // Local file link

                    var dataFolder = await App.Current.Config.GetDataFolderAsync();

                    var dataPath  = dataFolder.Path;
                    var localPath = uri.AbsolutePath.Substring(6);

                    var a = System.IO.Path.Combine(dataPath, localPath);

                    var file = System.IO.Path.GetFullPath(a);

                    Windows.System.Launcher.LaunchFileAsync(await StorageFile.GetFileFromPathAsync(file));

                    return;
                }
            }

            // Normal Link
            Logger.Info("Normal link clicked.");
            Logger.ConditionalDebug($"Normal link clicked: {uri}");
            args.Cancel = true;
            ViewModel.LinkClicked.Execute(uri);

            return;
        }