Reputation: 31
i want to pass a String data to a webview page, is it possible to do it in flutter? because i know how to do it using html and javascript via contentWindow.postMessage() but i don't know how to implement it in flutter, thanks.
This is my code in flutter to show the webview
Container(
height:500,
child: EasyWebView(
onLoaded: () {
print('loaded');
},
src: webviewsrc,
),
),
Upvotes: 3
Views: 6214
Reputation: 2490
I haven't tried using EasyWebView, but I tried webview_flutter and I can run a Javascript command using its controller.
In this example, I added a scroll
listener which detects if page is scrolled to bottom most.
Widget _buildWebview(BuildContext context) {
WebViewController controller;
return WebView(
javascriptMode: JavascriptMode.unrestricted,
onWebViewCreated: (WebViewController webViewController) async {
webViewController.clearCache();
controller = webViewController;
await controller.loadUrl('https://pub.dev/packages/webview_flutter');
},
onPageFinished: (String _) async {
controller.evaluateJavascript('''
window.addEventListener('scroll', function(e) {
if ((Math.ceil(window.innerHeight + window.pageYOffset)) >= document.body.offsetHeight) {
ScrollCallback.postMessage('END OF PAGE!!!');
}
});
''');
},
javascriptChannels: <JavascriptChannel>{
JavascriptChannel(
name: 'ScrollCallback',
onMessageReceived: (JavascriptMessage message) {
print(message.message);
}),
},
);
}
Upvotes: 9