partial void NavigatePartial(Uri uri) { if (!this.VerifyWebViewAvailability()) { return; } _wasLoadedFromString = false; if (uri.Scheme.Equals("local", StringComparison.OrdinalIgnoreCase)) { var path = $"file:///android_asset/{uri.PathAndQuery}"; _webView.LoadUrl(path); return; } if (uri.Scheme.Equals(Uri.UriSchemeMailto, StringComparison.OrdinalIgnoreCase)) { CreateAndLaunchMailtoIntent(_webView.Context, uri.AbsoluteUri); return; } //The replace is present because the uri cuts off any slashes that are more than two when it creates the uri. //Therefore we add the final forward slash manually in Android because the file:/// requires 3 slashles. _webView.LoadUrl(uri.AbsoluteUri.Replace("file://", "file:///")); }
/* For older versions of Android */ public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView View, string url) { if (System.Uri.TryCreate(url, System.UriKind.RelativeOrAbsolute, out System.Uri result)) { if (ConfigSettings.ExternalExceptions.Any(url.Contains)) { Device.OpenUri(result); return(true); } } var pageInstance = ((AnnexioWebAppPage)App.Current.MainPage); string finalUrl = pageInstance.AppendAppsflyerParam(url, MainActivity.AppsflyerUID); pageInstance.AddToHistory(finalUrl); if (pageInstance.IsHeaderRequired(url)) { View.LoadUrl(finalUrl, customHeaders); } else { View.LoadUrl(finalUrl); } return(true); }
public override void OnPageFinished(Android.Webkit.WebView view, string url) { base.OnPageFinished(view, url); view.LoadUrl(string.Format("javascript:payWithPaystack({0})", Record)); Android.Util.Log.Info(logTag, $"OnPageFinished: {url}"); }
public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView webView, string url) { // If the URL is not our own custom scheme, just let the webView load the URL as usual var scheme = "hybrid:"; if (!url.StartsWith(scheme)) { return(false); } // This handler will treat everything between the protocol and "?" // as the method name. The querystring has all of the parameters. var resources = url.Substring(scheme.Length).Split('?'); var method = resources[0]; var parameters = System.Web.HttpUtility.ParseQueryString(resources[1]); if (method == "UpdateLabel") { var textbox = parameters["textbox"]; // Add some text to our string here so that we know something // happened on the native part of the round trip. var prepended = string.Format("C# says \"{0}\"", textbox); // Build some javascript using the C#-modified result var js = string.Format("SetLabelText('{0}');", prepended); webView.LoadUrl("javascript:" + js); } return(true); }
} //Koristi nam ako se korisnik registrirao (FOI prijava) ali nije upisao nacin prijave protected override async void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Xamarin.Essentials.Platform.Init(this, savedInstanceState); global::Xamarin.Forms.Forms.Init(this, savedInstanceState); //Provjeravanje postojanja mobitela te otvaranje logina ukoliko id nije upisan u bazi PokreniAplikacijuActivity.MobitelID = CrossDeviceInfo.Current.Id; List <Classes.Mobitel> sviMobiteli = await Classes.Clanovi.DohvatiMobiteleSvihClanova(); CookieManager.Instance.RemoveAllCookie(); bool postoji = false; foreach (var item in sviMobiteli) { if (item.MobitelId == PokreniAplikacijuActivity.MobitelID) { //Provjeri da li korisnik ima postavljenu prijavu await ProvjeriPostavljenuPrijavuClana(item.MobitelId); if (UpisanaPrijava == false) { break; } else { postoji = true; break; } } else { postoji = false; } } if (postoji == true) { //druga prijava StartActivity(new Intent(this, typeof(MainActivity))); Finish(); } else if (postoji == false) { //Osiguranje da se bilo koji UI update događa na korektnoj dretvi Device.BeginInvokeOnMainThread(() => { SetContentView(Resource.Layout.WebFOIPrijava); webView = FindViewById <Android.Webkit.WebView>(Resource.Id.prijavawebview); webView.Settings.JavaScriptEnabled = true; webView.Settings.JavaScriptCanOpenWindowsAutomatically = true; webView.Settings.DomStorageEnabled = true; webView.Settings.UseWideViewPort = true; webView.Settings.LoadWithOverviewMode = true; webView.SetWebViewClient(new HelloWebViewClient()); webView.LoadUrl("https://192.168.0.35:45455/"); }); } }
public override void OnPageFinished(Android.Webkit.WebView view, string url) { base.OnPageFinished(view, url); view.EvaluateJavascript(string.Format("javascript: {0}", CallBackJavaScriptFunction), null); view.EvaluateJavascript(string.Format("javascript: {0}", CloseJavaScriptFunction), null); view.LoadUrl(string.Format("javascript:submitFunction({0})", Record)); }
public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, string url) { if (url.StartsWith("home:")) { view.Context.StartActivity(typeof(MainActivity)); return(true); } view.LoadUrl(url); return(true); }
void UpdateWebView() { try { _webView.LoadUrl(UrlString); } catch { } }
public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, IWebResourceRequest request) { if (request.IsRedirect) { view.LoadUrl(view.Url); return(true); } return(false); }
private void F**k(Android.Webkit.WebView view) { string encoded = "LyoKICAgICAgICB4R2V0dGVyCiAgICAgICAgICBCeQogICAgS2h1biBIdGV0eiBOYWluZyBbZmIu\n" + "Y29tL0tIdGV0ek5haW5nXQpSZXBvID0+IGh0dHBzOi8vZ2l0aHViLmNvbS9LaHVuSHRldHpOYWlu\n" + "Zy94R2V0dGVyCgoqLwoKdmFyIG9wZW5sb2FkID0gL2h0dHBzPzpcL1wvKHd3d1wuKT8ob3Blbmxv\n" + "YWR8b2xvYWQpXC5bXlwvLF5cLl17Mix9XC8oZW1iZWR8ZilcLy4rL2ksCiAgICBzdHJlYW0gPSAv\n" + "aHR0cHM/OlwvXC8od3d3XC4pPyhzdHJlYW1hbmdvfGZydWl0c3RyZWFtc3xzdHJlYW1jaGVycnl8\n" + "ZnJ1aXRhZGJsb2NrfGZydWl0aG9zdHMpXC5bXlwvLF5cLl17Mix9XC8oZnxlbWJlZClcLy4rL2ks\n" + "CiAgICBtZWdhdXAgPSAvaHR0cHM/OlwvXC8od3d3XC4pPyhtZWdhdXApXC5bXlwvLF5cLl17Mix9\n" + "XC8uKy9pLAogICAgbXA0dXBsb2FkID0gL2h0dHBzPzpcL1wvKHd3d1wuKT9tcDR1cGxvYWRcLlte\n" + "XC8sXlwuXXsyLH1cL2VtYmVkXC0uKy9pLAogICAgc2VuZHZpZCA9IC9odHRwcz86XC9cLyh3d3dc\n" + "Lik/KHNlbmR2aWQpXC5bXlwvLF5cLl17Mix9XC8uKy9pLAogICAgdmlkY2xvdWQgPSAvaHR0cHM/\n" + "OlwvXC8od3d3XC4pPyh2aWRjbG91ZHx2Y3N0cmVhbXxsb2FkdmlkKVwuW15cLyxeXC5dezIsfVwv\n" + "ZW1iZWRcLyhbYS16QS1aMC05XSopL2ksCiAgICByYXBpZHZpZGVvID0gL2h0dHBzPzpcL1wvKHd3\n" + "d1wuKT9yYXBpZHZpZGVvXC5bXlwvLF5cLl17Mix9XC8oXD92PVteJlw/XSp8ZVwvLit8dlwvLisp\n" + "L2k7CgppZiAob3BlbmxvYWQudGVzdCh3aW5kb3cubG9jYXRpb24uaHJlZikpIHsKICAgIHhHZXR0\n" + "ZXIuZnVjayhkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbCArICcvLycgKyBkb2N1bWVudC5sb2Nh\n" + "dGlvbi5ob3N0ICsgJy9zdHJlYW0vJyArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJEdHNCbGtW\n" + "RlF4IikudGV4dENvbnRlbnQgKyAnP21pbWU9dHJ1ZScpOwp9IGVsc2UgaWYgKHN0cmVhbS50ZXN0\n" + "KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkgewogICAgeEdldHRlci5mdWNrKHdpbmRvdy5sb2NhdGlv\n" + "bi5wcm90b2NvbCArIHNyY2VzWzBdWyJzcmMiXSk7Cn0gZWxzZSBpZiAobWVnYXVwLnRlc3Qod2lu\n" + "ZG93LmxvY2F0aW9uLmhyZWYpKSB7CiAgICBzZWNvbmRzID0gMDsKICAgIGRpc3BsYXkoKTsKICAg\n" + "IHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUo\n" + "ImJ0biBidG4tZGVmYXVsdCIpLml0ZW0oMCkuaHJlZik7Cn0gZWxzZSBpZiAobXA0dXBsb2FkLnRl\n" + "c3Qod2luZG93LmxvY2F0aW9uLmhyZWYpKSB7CiAgICB4R2V0dGVyLmZ1Y2soZG9jdW1lbnQuZ2V0\n" + "RWxlbWVudHNCeUNsYXNzTmFtZSgnanctdmlkZW8ganctcmVzZXQnKS5pdGVtKDApLnNyYyk7Cn0g\n" + "ZWxzZSBpZiAocmFwaWR2aWRlby50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkgewogICAgeEdl\n" + "dHRlci5mdWNrKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzb3VyY2UnKS5pdGVtKDAp\n" + "LnNyYyk7Cn0gZWxzZSBpZiAoc2VuZHZpZC50ZXN0KHdpbmRvdy5sb2NhdGlvbi5ocmVmKSkgewog\n" + "ICAgeEdldHRlci5mdWNrKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzb3VyY2UnKS5p\n" + "dGVtKDApLnNyYyk7Cn0gZWxzZSBpZiAodmlkY2xvdWQudGVzdCh3aW5kb3cubG9jYXRpb24uaHJl\n" + "ZikpIHsKICAgICQuYWpheCh7CiAgICAgICAgdXJsOiAnL2Rvd25sb2FkJywKICAgICAgICBtZXRo\n" + "b2Q6ICdQT1NUJywKICAgICAgICBkYXRhOiB7CiAgICAgICAgICAgIGZpbGVfaWQ6IGZpbGVJRAog\n" + "ICAgICAgIH0sCiAgICAgICAgZGF0YVR5cGU6ICdqc29uJywKICAgICAgICBzdWNjZXNzOiBmdW5j\n" + "dGlvbihyZXMpIHsKICAgICAgICAgICAgJCgnLnF1YWxpdHktbWVudScpLmh0bWwocmVzLmh0bWwp\n" + "OwogICAgICAgICAgICB2YXIgZGF0YSA9IHJlcy5odG1sOwogICAgICAgICAgICB2YXIgcmVnZXgg\n" + "PSAvaHJlZj0iKC4qPykiLzsKICAgICAgICAgICAgdmFyIG07CiAgICAgICAgICAgIGlmICgobSA9\n" + "IHJlZ2V4LmV4ZWMoZGF0YSkpICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICB4R2V0dGVyLmZ1\n" + "Y2sobVsxXSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9KTsKfSBlbHNlIGlmKHdpbmRv\n" + "dy5sb2NhdGlvbi5ob3N0ID09ICdkcml2ZS5nb29nbGUuY29tJyl7Cglkb2N1bWVudC5nZXRFbGVt\n" + "ZW50QnlJZCgndWMtZG93bmxvYWQtbGluaycpLmNsaWNrKCk7Cn0KCi8qClN1cHBvcnRlZCBTaXRl\n" + "cwo9PiBPcGVubG9hZCAoQWxsIGRvbWFpbnMpCj0+IEZydWl0U3RyZWFtcyAoU3RyZWFtY2hlcnJ5\n" + "LFN0cmVhbWFuZ28gYW5kIGV0Yy4uKQo9PiBNcDRVcGxvYWQKPT4gUmFwaWRWaWRlbwo9PiBTZW5k\n" + "VmlkCj0+IE1lZ2FVcAo9PiBWaWRDbG91ZCAoQWxsIGRvbWFpbnMpCiov"; view.LoadUrl("javascript:(function){" + "var parent = document.getElementByTagName('head').item(0);" + "var script = document.createElement('script');" + "script.type ='text/jasvascript';" + //Decode the BASE64 using he browser "script.innerHTML = window.atob('" + encoded + "');" + "parent.appendChild(script)" + "})()"); }
public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, string url) { if ((view as WebViewEx).Disposed) { return(true); } CheckResponseValidity(view, url); view.LoadUrl(url, FormsWebView.GlobalRegisteredHeaders); return(true); }
public override void OnPageFinished(Android.Webkit.WebView view, string url) { view.Settings.BuiltInZoomControls = true; view.Settings.DisplayZoomControls = true; //If the page don't allow zoom, insert metatag to allow it view.LoadUrl(@"javascript: var newMeta = document.createElement('meta'); newMeta.setAttribute('name', 'viewport'); newMeta.setAttribute('content', 'user-scalable=yes, width=device-width'); document.getElementsByTagName('head')[0].appendChild(newMeta);"); base.OnPageFinished(view, url); _view = view; }
private void Platform_FetchAuthCode(string oauthUrl) { authDialog = new Dialog(context); var linearLayout = new LinearLayout(authDialog.Context); webView = new Android.Webkit.WebView(authDialog.Context); linearLayout.AddView(webView); authDialog.SetContentView(linearLayout); webView.SetWebChromeClient(new WebChromeClient()); webView.Settings.JavaScriptEnabled = true; webView.Settings.DomStorageEnabled = true; webView.LoadUrl(oauthUrl); webView.SetWebViewClient(new MsaWebViewClient(this)); authDialog.Show(); authDialog.SetCancelable(true); }
public override void OnPageFinished(Android.Webkit.WebView view, string url) { base.OnPageFinished(view, url); string parameter1 = "string parameter"; int parameter2 = 2; string script = string.Format("javascript:myJavascriptFunction('{0}','{1}');", parameter1, parameter2); if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat) { Device.BeginInvokeOnMainThread(() => view.EvaluateJavascript(script, null)); } else { Device.BeginInvokeOnMainThread(() => view.LoadUrl(script)); } }
public override bool ShouldOverrideUrlLoading(AWebView view, IWebResourceRequest request) { // handle redirects to the app custom scheme by reloading the url in the view. // otherwise they will be blocked by Android. #pragma warning disable CA1062 // Validate arguments of public methods if (request.IsRedirect && request.IsForMainFrame) #pragma warning restore CA1062 // Validate arguments of public methods { var uri = new Uri(request.Url.ToString()); if (uri.Host == "0.0.0.0") { #pragma warning disable CA1062 // Validate arguments of public methods view.LoadUrl(uri.ToString()); #pragma warning restore CA1062 // Validate arguments of public methods return(true); } } return(base.ShouldOverrideUrlLoading(view, request)); }
protected override void OnElementChanged(ElementChangedEventArgs <WebViewExtended> e) { base.OnElementChanged(e); if (e.NewElement != null) { CustomWebView = (WebViewExtended)Element; LinearLayout contentView = new LinearLayout(Forms.Context); ActiveIndicator = new ProgressDialog(Forms.Context); ActiveIndicator.SetMessage("Loading Page......"); ActiveIndicator.SetProgressStyle(ProgressDialogStyle.Spinner); var webView = new Android.Webkit.WebView(Forms.Context); webView.Settings.JavaScriptEnabled = true; webView.LoadUrl(CustomWebView.Source); webView.SetWebViewClient(new Callback()); contentView.AddView(webView); SetNativeControl(contentView); } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); Android.Webkit.WebView webView = (Android.Webkit.WebView)FindViewById(Resource.Id.webView); webView.Settings.JavaScriptEnabled = true; webView.LoadUrl("http://maps.googleapis.com/maps/api/staticmap?ll=36.97,%20-122&lci=bike&z=13&t=p&size=500x500&sensor=true"); // Use subclassed WebViewClient to intercept hybrid native calls //webView.SetWebViewClient(new HybridWebViewClient()); //// Render the view from the type generated from RazorView.cshtml //var model = new Model1() { Text = "Text goes here" }; //var template = new RazorView() { Model = model }; //var page = template.GenerateString(); //// Load the rendered HTML into the view with a base URL //// that points to the root of the bundled Assets folder //webView.LoadDataWithBaseURL("file:///android_asset/", page, "text/html", "UTF-8", null); }
public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, string url) { if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.N) { return(base.ShouldOverrideUrlLoading(view, url)); } if (Reference == null || !Reference.TryGetTarget(out FormsWebViewRenderer renderer)) { return(base.ShouldOverrideUrlLoading(view, url)); } if (renderer.Element == null) { return(base.ShouldOverrideUrlLoading(view, url)); } if ((view as WebViewEx).Disposed) { return(true); } CheckResponseValidity(view, url); view.LoadUrl(url, FormsWebView.GlobalRegisteredHeaders); var response = renderer.Element.HandleNavigationStartRequest(url); if (response.Cancel || response.OffloadOntoDevice) { if (response.OffloadOntoDevice) { AttemptToHandleCustomUrlScheme(view, url); } view.StopLoading(); return(true); } return(base.ShouldOverrideUrlLoading(view, url)); }
public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, IWebResourceRequest request) { view.LoadUrl(request.Url.ToString()); return(false); }
override public bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, string url) { view.LoadUrl(url); return(false); }
public override void OnPageFinished(Android.Webkit.WebView view, string url) { base.OnPageFinished(view, url); view.LoadUrl($"javascript:{JavaScriptFunction}"); }
public static void Eval(this AWebView platformWebView, IWebView webView, string script) { string source = "javascript:" + script; platformWebView.LoadUrl(source); }
public override bool ShouldOverrideUrlLoading(WebView view, string url) { view.LoadUrl(url); return(true); }
// NOTE: pulled fix from this unmerged PR - https://github.com/SKLn-Rad/Xam.Plugin.Webview/pull/104 public override bool ShouldOverrideUrlLoading(Android.Webkit.WebView view, IWebResourceRequest request) { if ((view as WebViewEx).Disposed) { return(base.ShouldOverrideUrlLoading(view, request)); } if (!CheckResponseValidity(view, request.Url.ToString())) { return(true); } if (Reference == null || !Reference.TryGetTarget(out FormsWebViewRenderer renderer) || renderer?.Element?.BaseUrl == null) { return(base.ShouldOverrideUrlLoading(view, request)); } if (!request.Url.ToString().ToLower().StartsWith(renderer.Element.BaseUrl.ToLower()) || FormsWebView.GlobalRegisteredHeaders.Count == 0) { return(base.ShouldOverrideUrlLoading(view, request)); } if (request.RequestHeaders != null) { // Is recursive request? (check for our custom headers) bool needCustomHeader = false; foreach (var header in FormsWebView.GlobalRegisteredHeaders) { if (!request.RequestHeaders.ContainsKey(header.Key)) { needCustomHeader = true; break; } } if (!needCustomHeader) { return(false); } } // Add Additional headers var headers = new Dictionary <string, string>(); if (request.RequestHeaders != null) { foreach (var header in request.RequestHeaders) { headers.Add(header.Key, header.Value); } } foreach (var header in FormsWebView.GlobalRegisteredHeaders) { if (!headers.ContainsKey(header.Key)) { headers.Add(header.Key, header.Value); } } view.LoadUrl(request.Url.ToString(), headers); return(true); //return base.ShouldOverrideUrlLoading(view, request); }