I have a div id as campaign-nav and class id as campaign-term-list and also
I don’t want to show a header, menu, and footer. In Android, I can do with below code: (WebViewController android code found: Display a part of the webpage on the webview android)
How can I display a part of the webpage using WebViewController plugin in Flutter?
view.getSettings().setJavaScriptEnabled(true);
view.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String URL)
{
view.loadUrl("javascript:(function() { " +
"var head = document.getElementsByClassName('header')[0].style.display='none'; " +
"var head = document.getElementsByClassName('blog-sidebar')[0].style.display='none'; " +
"var head = document.getElementsByClassName('footer-container')[0].style.display='none'; " +
"})()");
}
});
view.loadUrl("your url");
UPDATE: Flutter example has;
final Completer<WebViewController> _controller = Completer<WebViewController>();
And they use _controller as;
new WebView(
initialUrl:
'h****s://mysite.com/campaing/',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
},
javascriptChannels: <JavascriptChannel>[
_toasterJavascriptChannel(context),
].toSet(),
onPageFinished: (String url) {
print('Page finished loading: $url');
//Here is I put a boolean variable so I can show a progress indicator
setState(() {
_loadedPage = true;
});
},
),
Update-2: In my web page I have footer as shown below.
<div id="footer">
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="footer-menu">
I put your code inside below _controller.complete(webViewController); part. But still shows the footer.
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
webViewController.evaluateJavascript("document.getElementsByClassName('footer-menu')[0].style.display='none';");
},
When I try to put webViewController.evaluateJavascript inside onPageFinished part it doesn't find the ".evaluateJavascript" part.
Update-3: Full code:(not working)
new WebView(
initialUrl: 'https://stackoverflow.com',
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (controller){
_myController = controller;
},
javascriptChannels: <JavascriptChannel>[
_toasterJavascriptChannel(context),
].toSet(),
onPageFinished: (url){
print('Page finished loading: $url');
_myController.evaluateJavascript("document.getElementsByClassName('header')[0].style.display='none';");
setState(() {
_loadedPage = true;
});
},
),