Web View Without the View? - android

I want my app to interact with my HTML page. Using a scheme and intent filter I can catch links but the problem is how to send things back to the browser.
For example if I want to use my JS function I can use a WebView and call loadUrl("javascript:MyJSFunction(..)
Can I do it with out the view part of the WebView?

Add a WebView and set it visibility to View.GONE
Like
WebView webView=new WebView(this);
webView.setVisibility(View.GONE);
then
webView.loadUrl("javascript:MyJSFunction(..)

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);

How to loaded survey form dynamically in android from url?

i need to know how to load Survey Form dynamically from my web url and show it in android.
For that you have to use WebView.
in your OnCreate() method use following code
WebView browser = (WebView) findViewById(R.id.webview);
browser.loadUrl("http://www.tutorialspoint.com");
Tutorial for implementing the complete solution : Open URL in WebView.

passing data from javaclass to html webview

I'm using a webview in my app.
now what I want to do is to pass the data from my javaclass to html.
fro example I have a textview in my android javaclass and when I hit the button send the webview will show with html saying Hi + the name that I input in textview.
is it possible?
Check Using WebViews may be it will help
You can generate your html and then load it to WebView using loadData method for example.
Or you can use addJavascriptInterface to invoke methods of some Java object from javaScript code in WebView
See below code
WebView webview = (WebView) findViewById(R.id.webview);
webview.loadUrl("http://www.xxx.com/web/apps/jots.do");

Android webview url redirect

I have a webview in my application which upon launch displays an html page. The page has a hyperlink which on click is supposed to display a video.
When i run the application and click on the video hyperlink link , nothing happens. But if i load the same page in android browser, then it launches a default video player and everything works fine.
I debugged it furthers by putting a log statement in shouldOverrideUrlLoading method and noticed that, when the hyperlink is clicked it gets redirected to another link and then to another link (final video streaming url).
My question is : why would the link work perfectly in default android browser and not through a webview.
Thanks
What is happening is when you click the hyperlink, that link probably has some popups inside of it. You need to define the onCreateWindow function in your webview's WebChromeClient. This handles how calls to open new windows or popups are handled.
public boolean onCreateWindow (WebView view, boolean dialog, boolean userGesture, Message resultMsg) {
((WebView.WebViewTransport) resultMsg.obj).setWebView(myWebView);
resultMsg.sendToTarget();
return true;
}
After declaring your WebView you should set javascript enabled, then your WebView will work as a browser.
For example:
WebView mwebview = new WebView(this);
setContentView(mwebview);
mwebview.getSettings().setJavaScriptEnabled(true);
or
mwebview.getSettings().setPluginState(PluginState.ON); // this is for newer API's
Basically, do not expect your embedded WebView works the same as Android default Browser. The default Browser is built on the same WebView, but there are lots a customization. (Especially around the no-standard uri, HTML5 stuff)
I followed code from here: WebView and HTML5 <video>, and I put the video link to a video tag, and I got the Video playing in my own version of WebView. The behavior is a little different from the default Browser. Given more time, we could figure that out by looking at its code, but anyways ...

Force webview to open urls inside application - android app

How to force WebView to open all the urls inside the application?
You need to override the WebViewClient for your WebView.
See here for the details: it's pretty straight forward.
Notice Step 6 in particular.
To open links clicked by the user, simply provide a WebViewClient for
your WebView, using setWebViewClient(). For example:
WebView myWebView = (WebView) findViewById(R.id.webview);
myWebView.setWebViewClient(new WebViewClient());
That's it. Now all links the user clicks load in your WebView.

Categories

Resources