File tree Expand file tree Collapse file tree 2 files changed +15
-13
lines changed Expand file tree Collapse file tree 2 files changed +15
-13
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ import 'dart:convert';
22
33import 'package:chative_sdk/src/constants.dart' ;
44
5+ /// Generates the JavaScript script to be injected into the WebView
56String generateScript (Map <String , dynamic > user) {
67 String userString = jsonEncode (user);
78 return '''
@@ -37,6 +38,7 @@ String generateScript(Map<String, dynamic> user) {
3738 ''' ;
3839}
3940
41+ /// Generates the JavaScript script to be injected into the WebView to get the config
4042String generateScriptGetError (String channelId) {
4143 return '''
4244 function getTimeZone() {
@@ -69,6 +71,7 @@ String generateScriptGetError(String channelId) {
6971 ''' ;
7072}
7173
74+ /// Converts a Dart object into a JavaScript object string
7275String widgetApi (String event, dynamic data) {
7376 String dataString;
7477 if (data is String ) {
@@ -118,3 +121,12 @@ bool isScriptSafe(String script) {
118121
119122 return true ;
120123}
124+
125+ /// Safely parses a JSON string into a Map
126+ Map <String , dynamic > parseJson (String message) {
127+ try {
128+ return jsonDecode (message) as Map <String , dynamic >;
129+ } catch (e) {
130+ return {};
131+ }
132+ }
Original file line number Diff line number Diff line change 1- import 'dart:convert' ;
21import 'dart:io' ;
32
43import 'package:file_picker/file_picker.dart' ;
@@ -24,14 +23,14 @@ class Webview extends StatefulWidget {
2423 final OnError ? onError;
2524
2625 const Webview ({
27- Key ? key,
26+ super . key,
2827 required this .channelId,
2928 this .user,
3029 this .onLoaded,
3130 this .onClosedWidget,
3231 this .onNewMessage,
3332 this .onError,
34- }) : super (key : key) ;
33+ });
3534
3635 @override
3736 State <Webview > createState () => WebviewState ();
@@ -72,7 +71,7 @@ class WebviewState extends State<Webview> {
7271
7372 /// Handles JavaScript messages received from the WebView
7473 void _handleJavaScriptMessage (JavaScriptMessage message) {
75- final parsedData = _parseJson (message.message);
74+ final parsedData = parseJson (message.message);
7675
7776 switch (parsedData['event' ]) {
7877 case 'closed' :
@@ -93,15 +92,6 @@ class WebviewState extends State<Webview> {
9392 }
9493 }
9594
96- /// Safely parses a JSON string into a Map
97- Map <String , dynamic > _parseJson (String message) {
98- try {
99- return jsonDecode (message) as Map <String , dynamic >;
100- } catch (e) {
101- return {};
102- }
103- }
104-
10595 /// Creates a NavigationDelegate for the WebView
10696 NavigationDelegate _createNavigationDelegate () {
10797 return NavigationDelegate (
You can’t perform that action at this time.
0 commit comments