Android Webview Catch Javascript Error
Contents |
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more about android webview javascript not working Stack Overflow the company Business Learn more about hiring developers or posting ads with android webview call javascript us Stack Overflow Questions Jobs Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is android webview javascript bridge a community of 4.7 million programmers, just like you, helping each other. Join them; it only takes a minute: Sign up android webview javascript invoke missing function up vote 2 down vote favorite I need
Android Webview Javascript Callback
to catch an error when invoking javascript from android's webview; if the javascript is missing I need to catch some event and do something else in android instead. for instance, I have webview.loadUrl("javascript:doSomething"); the page is missing 'doSomething', so I can see the following error in logcat: ReferenceError: Can't find variable: doSomething ... I need to catch this error and handle it, for instance something like public override void onJsErrorReceived(String android webview javascript return value errorDescription) { if(errorDescription.contains("doSomething")) handleError(); } I can't find any such event in webview, nor in the clients of webview (WebChromeClient and WebViewClient) to overridel. Does anybody have an idea? Thanks javascript android webview android-webview share|improve this question asked Jan 31 '12 at 14:14 baruch dego 5115 add a comment| 1 Answer 1 active oldest votes up vote 0 down vote As per this question, the methods you need to over-ride are: WebChromeClient.onConsoleMessage(String message, int lineNumber, String sourceID) and WebChromeClient.onConsoleMessage(ConsoleMessage cm), share|improve this answer answered Apr 2 '12 at 6:26 Maks 3,09132040 add a comment| Your Answer draft saved draft discarded Sign up or log in Sign up using Google Sign up using Facebook Sign up using Email and Password Post as a guest Name Email Post as a guest Name Email discard By posting your answer, you agree to the privacy policy and terms of service. Not the answer you're looking for? Browse other questions tagged javascript android webview android-webview or ask your own question. asked 4 years ago viewed 1284 times active 4 years ago Linked 21 Android: problem with debugging javascript in webview Related 4406JavaScript function declaration syntax: var fn = function() {} vs function fn() {}101WebView and HTML5
here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site About Us Learn more about Stack Overflow the company Business android webview javascript call java Learn more about hiring developers or posting ads with us Stack Overflow Questions Jobs
Android Webview Javascript Enable
Documentation Tags Users Badges Ask Question x Dismiss Join the Stack Overflow Community Stack Overflow is a community of 4.7 million programmers, just
Android Webview Javascript Console
like you, helping each other. Join them; it only takes a minute: Sign up Android WebView onReceivedError() up vote 27 down vote favorite 6 Does anyone know if there is a way to intercept a "page not http://stackoverflow.com/questions/9081000/android-webview-javascript-invoke-missing-function found" or "page not loading error" in WebView? According to the android documentation, onReceivedError() should be able to intercept. but i tested it in an app which I deleberately gave the wrong URL, and it didn't do anything. I want my app to be able to give my own custom error message if the URL is ever unavailable for any reason. this is the code that did nothing: public void onReceivedError(WebView view, int errorCode, String http://stackoverflow.com/questions/4997677/android-webview-onreceivederror description, String failingUrl) { // custom error handling ... show and alert or toast or something } android webview share|improve this question edited Sep 26 '11 at 9:55 Octavian Damiean 30.3k178091 asked Feb 14 '11 at 21:49 Joe Winfield 2513714 add a comment| 3 Answers 3 active oldest votes up vote 26 down vote According to documentation and my experience it should work quite fine. You just have to set your WebClient with overriden method onReceivedError in your WebView. Here is the snippet from some of my old test app: WebView wv = (WebView) findViewById(R.id.webView); wv.setWebViewClient(new WebViewClient() { @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Log.i("WEB_VIEW_TEST", "error code:" + errorCode); super.onReceivedError(view, errorCode, description, failingUrl); } }); I've tested it and it works quite fine. Check your logs and see what kind of code error do you get. Hope it helps. share|improve this answer answered Feb 14 '11 at 22:24 androdevo 5061616 what i'm trying to do is make it do something else on error, super.onReceivedError(view, errorCode, description, failingUrl); myWebView.LoadUrl("www.someOtherSite.net"); but it doesn't do anything but give me the "Not Found" error page. –Joe Winfield Feb 15 '11 at 3:49 could you pass the code of your onReceivedError method? –androdevo Feb 16 '11 at 9:51 3 You can try to load some alternat
All Products Customers Pricing Developers Support Developer Support Consulting Partners Consulting Services Contact Sales Resources Blog FAQ Partners Webinars About Xamarin Blog About https://forums.xamarin.com/discussion/42026/how-best-to-implement-error-handling-and-timeout-on-webview-when-loading-a-page Xamarin Questions Best Of... Sign In · Register Welcome Guides Recipes http://www.brokenopenapp.org/2015/06/29/javascript.html APIs Samples Forums Components Videos Forum › Xamarin Platform › Xamarin.Forms Categories Recent Threads Activity Best Of... Unanswered How best to implement error handling and timeout on WebView when loading a page? JohnHardman John HardmanGBUniversity ✭✭✭✭✭ May 2015 in Xamarin.Forms I make use of WebView within android webview my app. It seems to be a bit short on error handling and timeout handling, which occasionally results in, well... nothing - just a blank view. How can I: (1) get a status from the WebView telling me whether it is still loading the DOM, has loaded the DOM and rendered the view, has got an error (and android webview javascript what the error is) etc? (2) get notified when the status in (1) changes (3) specify a timeout on a WebView? (if I can identify whether it has been populated using (1) I can probably workaround this using a timer) And, just in case I need it in future: (4) access the DOM? Many thanks, John H. Tagged: xamarin.forms webview timeout error handling DOM 0 Best Answer hvaughan hines vaughan USMember ✭✭ October 2015 edited October 2015 Answer ✓ @JohnHardman For sure. For iOS, you would create a custom renderer and inherit from WebViewRenderer. Then within that, you would assign a custom WebView Delegate to the custom renderer's Delegate property. Then you can override LoadFailed() from with your custom WebView Delegate like so: public class CustomWebViewRenderer : WebViewRenderer { protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); if(e.OldElement == null) { Delegate = new CustomWebViewDelegate(); } } } internal class CustomWebViewDelegate : UIWebViewDelegate { #region Event Handlers public override bool ShouldStartLoad(UIWebView webView, NSUrlRequest request, UIWebViewNavigationType navigationType) { //Could add stuff here to r
set up a JavaScript to Android bridge: webView.addJavascriptInterface(new WebViewInterface(), "ACRA"); public class WebViewInterface { @android.webkit.JavascriptInterface public void reportError(String message, String url, Integer lineNumber) { ACRA.getErrorReporter().handleException(new RuntimeException( "Javascript Error" + message + " in " + url + " on line " + lineNumber )); } } Then setup a handler in JavaScript: Crash me now! And this error will now be logged to your server! Of course, you can only catch errors from your own web pages with this. There may be a way to catch errors from any page, but I haven’t tested it yet. © JMB Technology Limited 2015. Follow us on Twitter