Skip to main content

method channel JavaScript flutter

 method channel JavaScript  flutter 

 flutter plugin :  https://pub.dev/packages/webview_flutter

Step 1 - HTML CODE 

<!DOCTYPE html>
<html>
<head>
  <title>Thanks for your order!</title>
  <link rel="stylesheet" href="css/style.css">
  <script src="js/client.js" defer></script>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>

</body>
<script type='text/javascript'>

function postMessage(){
  var data = {
        message: "Response from web",
        sender: "user123",
        timestamp: new Date().toISOString()
    };

    var jsonData = JSON.stringify(data);

    setTimeout(function() {
        PayResponse.postMessage(jsonData);
    }, 1500); // Delay of 1500 milliseconds (1.5 seconds)
}

window.onload = postMessage;

</script>
</html>

Step 2 - Flutter code 

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

class FlutterWebView extends StatefulWidget {
const FlutterWebView({Key? key}) : super(key: key);

@override
State<FlutterWebView> createState() => _FlutterWebViewState();
}

class _FlutterWebViewState extends State<FlutterWebView> {
late WebViewController webViewController;

@override
void initState() {
// TODO: implement initState
super.initState();
webViewController = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted)
..setBackgroundColor(const Color(0x00000000))
..setNavigationDelegate(
NavigationDelegate(
onProgress: (int progress) {
// Update loading bar.
},
onPageStarted: (String url) {},
onPageFinished: (String url) {},
onHttpError: (HttpResponseError error) {},
onWebResourceError: (WebResourceError error) {},
onNavigationRequest: (NavigationRequest request) {
if (request.url.startsWith('https://www.youtube.com/')) {
return NavigationDecision.prevent;
}
return NavigationDecision.navigate;
},
),
)
..loadRequest(Uri.parse(''))
..addJavaScriptChannel("PayResponse", onMessageReceived: (var message) {
print("------message received------");
print(message.message);
Navigator.of(context).pop(message.message);
});
}

@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.red,
body: WebViewWidget(
controller: webViewController,
));
}
}




Comments

Popular posts from this blog

agora live streaming flutter

https://docs.agora.io/en/agora-chat/restful-api/user-system-registration?platform=flutter https://docs.agora.io/en/agora-chat/restful-api/chatroom-management/manage-chatrooms?platform=flutter https://stackoverflow.com/questions/75666504/how-to-generate-an-app-token-for-agora-chat https://stackoverflow.com/questions/61595787/flutter-how-can-i-create-an-incoming-call-notification?rq=4 https://stackoverflow.com/questions/70031266/flutter-incoming-video-audio-call-notification-using-agora https://stackoverflow.com/questions/61460809/video-call-acceptance-screen-with-agora-flutter https://stackoverflow.com/questions/70031266/flutter-incoming-video-audio-call-notification-using-agora https://www.flutterant.com/flutter-video-calling-by-agora-sdk/ https://medium.com/flutter/executing-dart-in-the-background-with-flutter-plugins-and-geofencing-2b3e40a1a124 https://medium.com/@Ayush_b58/flutter-callkit-handle-actions-in-the-killed-state-e6f296c603e6 https://stackoverflow.com/questions/61460809/vi...

FFmpeg resources

FFmpeg is a set of open source libraries that allow you to record, convert digital audio and video recordings in various formats. It includes libavcodec, a library for encoding and decoding audio and video, and libavformat, a library for multiplexing and demultiplexing into a media container. The name comes from the name of the MPEG and FF expert group, meaning fast forward. FFmpeg is already built into the program and does not require downloading additional codecs. The conversion takes place directly on the device (the Internet is not required), and the conversion speed depends on the processor speed of the device. Supports: MPEG4, h265, h264, mp3, 3gp, aac, ogg (vorbis and theora), opus, vp8, vp9 and many other formats (you will find the list in the app). Requirements: Android 4.4 and the availability of the processor ARMv7, ARMv8, x86, x86_64. FFmpeg with x264, x265, ogg, vorbis, theora, opus, vp8, vp9, mp3lame, libxvid, libfdk_aac, libvo_amrwbenc, libopencore-amr, speex, libsox, li...