private void ViewWebBrowserNavigating(object sender, WebBrowserNavigatingExEventArgs e) { /* * // Enable POST data * * if (!String.IsNullOrEmpty(e.Data)) * { * e.Cancel = false; * return; * } * * // Process other GET requests * * if (e.Url == null && e.TargetFrameName != null) * { * e.Cancel = false; * return; * } * else if (e.Url.Scheme == "file") * { * if (!String.IsNullOrEmpty(e.TargetFrameName) * && e.TargetFrameName[0] == '#' * && e.Url.ToString() == webBrowser.Url.ToString()) * { * e.Cancel = false; * return; * } * } * else if (e.Url.Scheme == "http" || e.Url.Scheme == "https") * { * Uri url = String.IsNullOrEmpty(e.Url.Host) ? * new Uri(SystemConfiguration.MobileSiteUrl + e.Url.LocalPath) : * new Uri(e.Url.ToString()); * * if (url.Host == new Uri(SystemConfiguration.MobileSiteUrl).Host) * { * //Если не внешний сайт (== http://m.odnoklassniki.ru) * ViewData["Url"] = url.ToString(); * OnViewStateChanged("GoToUrl"); * } * else * { * //Открыть в default браузере * var dRes = DialogControl.ShowQuery(Resources.WebBrowser_dialog_Text, DialogButtons.YesNo); * switch (dRes) * { * case DialogResult.Yes: * webBrowser.Stop(); * CoreHelper.NavigateBrowserExternal(e.Url.ToString() + e.TargetFrameName); * break; * case DialogResult.No: * break; * } * } * } * * e.Cancel = true; */ }
/// <summary> /// /// </summary> /// <param name="msg"></param> /// <returns>true if message was processed</returns> private bool OnHotSpotClicked(WebBrowserAPI.HtmlViewMessage msg) { Stop(); if (msg.target == null) return true; try { string escapedUrl = Uri.EscapeUriString(PrepareUrl(UnicodeToUtf8(msg.target))); string target = null; int idig = escapedUrl.IndexOf('#'); if (idig > -1) { target = escapedUrl.Substring(idig, escapedUrl.Length - idig); escapedUrl = escapedUrl.Substring(0, idig); } Uri uri = null; try { uri = new Uri(escapedUrl); } catch (UriFormatException) { } if (uri == null || String.IsNullOrEmpty(uri.Host)) { try { uri = new Uri(_url, escapedUrl); } catch (UriFormatException) { } } string postdata = null; if (msg.data != null && msg.data.Length > 0) postdata = UnicodeToUtf8(msg.data); WebBrowserNavigatingExEventArgs e = new WebBrowserNavigatingExEventArgs(uri, target, postdata); if (Navigating != null) { Navigating(this, e); if (!e.Cancel) return false; } } catch (UriFormatException) { return true; } catch (Exception) { return true; } return true; }
private void ViewWebBrowserNavigating(object sender, WebBrowserNavigatingExEventArgs e) { /* // Enable POST data if (!String.IsNullOrEmpty(e.Data)) { e.Cancel = false; return; } // Process other GET requests if (e.Url == null && e.TargetFrameName != null) { e.Cancel = false; return; } else if (e.Url.Scheme == "file") { if (!String.IsNullOrEmpty(e.TargetFrameName) && e.TargetFrameName[0] == '#' && e.Url.ToString() == webBrowser.Url.ToString()) { e.Cancel = false; return; } } else if (e.Url.Scheme == "http" || e.Url.Scheme == "https") { Uri url = String.IsNullOrEmpty(e.Url.Host) ? new Uri(SystemConfiguration.MobileSiteUrl + e.Url.LocalPath) : new Uri(e.Url.ToString()); if (url.Host == new Uri(SystemConfiguration.MobileSiteUrl).Host) { //Если не внешний сайт (== http://m.odnoklassniki.ru) ViewData["Url"] = url.ToString(); OnViewStateChanged("GoToUrl"); } else { //Открыть в default браузере var dRes = DialogControl.ShowQuery(Resources.WebBrowser_dialog_Text, DialogButtons.YesNo); switch (dRes) { case DialogResult.Yes: webBrowser.Stop(); CoreHelper.NavigateBrowserExternal(e.Url.ToString() + e.TargetFrameName); break; case DialogResult.No: break; } } } e.Cancel = true; */ }