To all my fellow JavaScript experts I need your help. In my Flutter app, I used JavaScript, can anyone help me edit my JavaScript code? I can get the URL and print for every click, but I don’t want the video to play. Your help is highly appreciated.
Behavior needed for my Flutter app:
-
I need to get the link each time I select video from https://www.youtube.com/ but I don’t want the video to be played.
void initState() { super.initState(); webViewController = WebViewController() ..setJavaScriptMode(JavaScriptMode.unrestricted) ..addJavaScriptChannel( 'Toaster', onMessageReceived: (JavaScriptMessage message) { print('${message.message}'); }, ) ..setNavigationDelegate(NavigationDelegate( onPageFinished: (String url) { injectJavaScript(); } )) ..loadRequest(Uri.parse('https://www.youtube.com'));}
}
void injectJavaScript() { webViewController.runJavaScript(''' (function() { function sendMessage(url) { Toaster.postMessage(url); } var videos = document.getElementsByTagName('video'); var audios = document.getElementsByTagName('audio'); for (var i = 0; i < videos.length; i++) { videos[i].muted = true; } for (var i = 0; i < audios.length; i++) { audios[i].muted = true; } var lastUrl = location.href; new MutationObserver(() => { var url = location.href; if (url !== lastUrl) { lastUrl = url; if (url.includes('/watch')) { sendMessage(url); } } }).observe(document, {subtree: true, childList: true}); })(); ''');}