I was about to give up before I found my answer that helped me solve a related problem - thanks josemmo.
Perhaps this will help others: After upgrading to Cordova 5 / Android 4, I was not able to run the shouldOverrideUrlLoading method of my WebViewClient method, because setting up WebViewClient on a newly created WebView
WebView webView = new WebView(this); webView.setWebViewClient(new WebViewClient());
did nothing on the onCreate method.
Thus, the solution was not to create a new WebView, but to use the cast appView AND mechanism like this:
SystemWebViewEngine systemWebViewEngine = (SystemWebViewEngine) appView.getEngine(); WebViewClient myWebViewClient = new myWebViewClient(systemWebViewEngine); WebView webView = (WebView) systemWebViewEngine.getView(); webView.setWebViewClient(myWebViewClient);
Then the custom WebViewClient class needs a constructor:
public class myWebViewClient extends SystemWebViewClient { public myWebViewClient(SystemWebViewEngine systemWebViewEngine) { super(systemWebViewEngine); } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { ... } }
I doubt it should be done that way, but at least his job.
anga
source share