I've experienced a LOT of strange behaviours with using WebView
in Android
and I'm wondering why there are so many diffrences between the WebView
and the Browser
installed on each phone?
As an example, I've developed some applications that had to display HTML
content, which contained either jquery-mobile
, flash
,javascript
, YouTube embedded and so on. So I had a lot of problems with displaying this pages inside WebViews
. Either they wouldn't get displayed at all, just blank, either the videos won't play and so on. And the strange thing is that they work properly if opened in the Browser
installed on the phone. I had JavaScript enabled, I tried diffrent WebSettings
, I had set the WebChromeClient
and WebViewClient
looking for javascript errors... but nothing worked.
So I got to the conclusion that the WebView
component is completely different from the Browser
application installed on the phones. I'm thinking that every manufacturer makes their own Browser
to support as many as possible pages, and the WebView
remains the standard one, included in the Android SDK
.
Am I right? Or there is another reasons/explanation for this? Thanks.
EDIT: Everything that @ondoteam has suggested was enabled and set at the time being. I no longer have the references to that websites, which anyway were internal.
What is WebView? Simply put, Android WebView allows apps to display web content, without having to open a web browser. Up to Android 6, WebView was a system service. Then, with Android 7.0, Google incorporated that functionality into the default Chrome Browser.
Do I need Android System WebView? The short answer to this question is yes, you do need Android System WebView. There is one exception to this, however. If you're running Android 7.0 Nougat, Android 8.0 Oreo, or Android 9.0 Pie, you can safely disable the app on your phone without suffering adverse consequences.
No, Chrome for Android is separate from WebView. They're both based on the same code, including a common JavaScript engine and rendering engine.
Web View is slower on both as compared to native android browser.
This article outlines your speculation about stock browser differences between manufacturers, that absolutely is true: 5 reality checks every team needs before working on Android webkit
...which does cause trouble and mysterious/difficult to diagnose/solve problems.
As far as your issues with your WebView
implementation:
Version of jquery-mobile
may be an issue jquery-mobile loaded into an android WebView if you are using jquery.mobile-1.0.1.min.js
you may want to try the uncompressed jquery.mobile-1.0.1.js
And Flash :-/ Good luck: Screen blinking when using a webview with flash
Flash in WebView not working on Android 3.2
Flash video not displaying in WebView for Android 3.0.1
For loading SWF:
Load an SWF into a WebView
loading flash files (.swf) webview in android
Good luck with that, seems like a lot of variables with devices, Android versions, etc. And will take persistence with trial/error.
The stock browser and WebView differs .Using all the tweaks like
WebView browser; browser.clearFormData(); browser.clearHistory(); browser.clearCache(true); browser.getSettings().setAppCacheEnabled(true); browser.getSettings().setDatabaseEnabled(true); browser.getSettings().setDomStorageEnabled(true); browser.setWebChromeClient(new WebChromeClient());
still it does not load high resolution images properly which is being loaded perfectly well by the android browser. Only part of the image can be visible on the webview screen which appears fully on normal android browser. This behavior is observed with latest Android 4X SDK as well. Which means android default browser significantly tweaks the webkit/webview code to show any url
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With