У меня есть div id в качестве навигатора кампании и идентификатор класса в качестве списка условий кампании, а также
Я не хочу показывать заголовок, меню и нижний колонтитул. В Android я могу сделать с помощью нижеприведенного кода: (Обнаружен код Android для WebViewController: Отображение части веб-страницы на веб-просмотре Android )
Как отобразить часть веб-страницы с помощью плагина WebViewController во 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:
Пример флаттера имеет;
final Completer<WebViewController> _controller = Completer<WebViewController>();
И они используют _controller как;
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 progressindicator
setState(() {
_loadedPage = true;
});
},
),
Update-2:
На моей веб-странице есть нижний колонтитул, как показано ниже.
<div id="footer">
<div class="container">
<div class="row">
<div class="col-md-4">
<div class="footer-menu">
Я поместил ваш код ниже _controller.complete (webViewController); часть. Но все равно показывает нижний колонтитул.
onWebViewCreated: (WebViewController webViewController) {
_controller.complete(webViewController);
webViewController.evaluateJavascript("document.getElementsByClassName('footer-menu')[0].style.display='none';");
},
Когда я пытаюсь поместить webViewController.evaluateJavascript в часть onPageFinished, он не находит часть «.evaluateJavascript».
Update-3:
Полный код: (не работает)
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;
});
},
),