href from json in android xml - android

I have and app and on my main menu page I want to load a clickable ad (href) from json.
example :
'nationalad':
"<"img src=\"http:\/\/www.mywebsite.com\/images\/national\/fullrz_2_4e657ae4df4ee_mywebsite.JPG\">"
This is the value I am getting back from json :
"<"img src="http://www.mywebsite.com/images/national/fullrz_2_4e657ae4df4ee_kickintheapp.JPG">
How do I set this in my xml page? Do I use a view or webview or an image /image button?
Completely lost.

Use a WebView, and show the data by using loadDataWithBaseURL(null, yourData, "text/html", "utf-8", null);

Hmm this works great for the first run what when I re-run the app the webview is not showing. The only thing that changes is that the image coming in is different on each load.
webView2.loadDataWithBaseURL(null, valArray.getString(1), "text/html", "utf-8", null);

Related

How to handle which tab is opened by default when loading an HTML in a WebView?

I want to load an HTML in a webview in my application that contains multiple tabs, something similar to this : https://www.w3schools.com/w3css/tryit.asp?filename=tryw3css_tabulators
In my code I simply take to html text and load it in the webview:
webView.setBackgroundColor(getColor(transparent));
webView.getSettings().setJavaScriptEnabled(true);
webView.loadData(htmlContent, MIME_TYPE, null);
How can I handle in code so that one specific tab to be open by default when we first enter the page?
After loading the content you can execute Javascript in the WebView like
webView.loadUrl("javascript:openCity('Paris');");
or with Kitkat and up
webView.evaluateJavascript("openCity('Paris');", null);

android webview can not show content by loaddatawithbaseurl sometime

I use webview to load local html data like this
webview.loadDataWithBaseURL("about:blank", finalSrc, "text/html", "UTF-8", null);
the finalSrc is a variable of html string.
sometimes, the webview can display the corrent content,but sometimes not.
and I found that if I clear the cache of my app, the webview works well again.
so what's wrong with my app?
rather than using BaseUrl why don't use loadData. for example
webview.loadData(finalSrc, "text/html", "UTF-8");

Android Webview goback() issue with loadDataWithBaseURL method

Issue is goback() not showing my html data back. Steps to produce this issue is like
Loaded html data using method loadDataWithBaseURL. It renders html data fine.
Then click on one link inside html data then webview moves to next page showing that link which is also fine.
When I call method goback() from this page it should show my html data but it is showing me blank screen. Inside onPageFinished() I am getting url as about:blank.
Thanks in advance!
If you use loadDataWithBaseURL you will need to send in the url parameter something different from null, if you send null the url will always be "about:blank"
Example:
var page = new RazorView().GenerateString();
webView.LoadDataWithBaseURL("file:///android_asset/", page, "text/html", "UTF-8", "");
var url = webView.CopyBackForwardList().GetItemAtIndex(1).Url;
//url will get the Html From Previous Page
Notice im using C# but it should be the same with java, except for the CapitalizedWords

How to clear html page before showing into a webview in Android?

I have the URL of a webpage to be displayed into a webview in my Android app. Before showing this page i want to clear the html code of this page from some tag (such as the header, footer, ecc..) in order to show only few information. How can i do it? I tried to solve the issue working with JSoup but i can't understand how to create and pass the "new page" to the webview. Anybody can help me?
EDIT
I cleaned the html code useless through jsoup libraries. Then, always by mean of these, i get head and body content and finally i showing the "cleared" web page through these lines:
headURL = doc.select("head").outerHtml();
bodyURL = doc.select("body").outerHtml();
webview.loadData( "<html>"+headURL+bodyURL+"</html>" , "text/html", "charset=UTF-8");
webview.setWebViewClient(new DisPlayWebPageActivityClient());
The view shows the new page but do not load css files specified in the head(that has not been touched). Who can say me why?
You can fetch the WebPage you want to display as a string, parse and remove whatever you don't want and then load this string as data in your webview.
Something like:
String webContent = fetchPage(url);
String cleanedWebContent = cleanUp(webContent);
webView.loadData(cleanedWebContent, "text/html", "UTF-8");
Of course, you will need to implement fetchPage and cleanUp as they are not Android methods

Had to load data twice to make WebView refresh in Android

When I first create the activity, everything goes fine. However, after I choose from menu to change some text of the String values and set the webview by
webview.loadData(result, "text/html; charset=UTF-8", null);
webview.loadData(result, "text/html; charset=UTF-8", null);
I have to do it twice, or the webview will keep unchanged. Is there anyone knows what happens here? Since the result String is the same, why webview force me to loadData twice?
Avoid WebView#loadData(String data, String mimeType, String encoding) - it's buggy.
Use WebView#loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding, String historyUrl) instead.
So your instruction will be like:
webview.loadDataWithBaseURL(null,result,"text/html", "utf-8", null);
Don't know what's your problem but looking at the webview documentation, you are using the loadData method wrongly :
Webview:loadData documentation
You probably should call your webview like this :
webview.loadData(result, "text/html", "UTF-8");
Don't know if it will solve your issue at all.
Yes with loadDataWithBaseURL it does refresh the data, but then it ignores the CSS body background-color! ... At least it can't parse "%23000000" which works with loadData.
I am loading local HTML data into my webview, and this webview is inside recyclerview,
When I try webview.loadData() when it renders 1st time it working fine, but when I scrolling upward downward every inflated webview`s get messed-up.
When I try second webview.loadDataWithBaseURL() its working like charm.
so,when you're loading the HTML locally and it references assets such as images & css which are also packaged locally use webview.loadDataWithBaseURL()

Categories

Resources