Skip to content

Commit 9de22a1

Browse files
Updated the demo app for android webview to enable debugging
Co-authored-by: SrinivasanTarget <[email protected]>
1 parent 9b2cfbc commit 9de22a1

File tree

3 files changed

+55
-23
lines changed

3 files changed

+55
-23
lines changed

demo-app/lib/screens/web_view_screen.dart

Lines changed: 50 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import 'package:appium_testing_app/components/custom_app_bar.dart';
22
import 'package:flutter/material.dart';
33
import 'package:webview_flutter/webview_flutter.dart';
4+
import 'package:webview_flutter_android/webview_flutter_android.dart';
5+
import 'package:webview_flutter_wkwebview/webview_flutter_wkwebview.dart';
46

57
class WebViewScreen extends StatefulWidget {
68
final String title;
@@ -12,26 +14,54 @@ class WebViewScreen extends StatefulWidget {
1214
}
1315

1416
class _WebViewScreenState extends State<WebViewScreen> {
15-
WebViewController controller = WebViewController()
16-
..setJavaScriptMode(JavaScriptMode.unrestricted)
17-
..setBackgroundColor(const Color(0x00000000))
18-
..setNavigationDelegate(
19-
NavigationDelegate(
20-
onProgress: (int progress) {
21-
// Update loading bar.
22-
},
23-
onPageStarted: (String url) {},
24-
onPageFinished: (String url) {},
25-
onWebResourceError: (WebResourceError error) {},
26-
onNavigationRequest: (NavigationRequest request) {
27-
if (request.url.startsWith('https://www.hackernews.com/')) {
28-
return NavigationDecision.prevent;
29-
}
30-
return NavigationDecision.navigate;
31-
},
32-
),
33-
)
34-
..loadRequest(Uri.parse('https://hackernews.com'));
17+
late final WebViewController controller;
18+
19+
@override
20+
void initState() {
21+
super.initState();
22+
23+
// Create platform-specific controller params
24+
late final PlatformWebViewControllerCreationParams params;
25+
if (WebViewPlatform.instance is WebKitWebViewPlatform) {
26+
params = WebKitWebViewControllerCreationParams(
27+
allowsInlineMediaPlayback: true,
28+
mediaTypesRequiringUserAction: const <PlaybackMediaTypes>{},
29+
);
30+
} else {
31+
params = const PlatformWebViewControllerCreationParams();
32+
}
33+
34+
final WebViewController webController =
35+
WebViewController.fromPlatformCreationParams(params)
36+
..setJavaScriptMode(JavaScriptMode.unrestricted)
37+
..setBackgroundColor(const Color(0x00000000))
38+
..setNavigationDelegate(
39+
NavigationDelegate(
40+
onProgress: (int progress) {
41+
// Update loading bar.
42+
},
43+
onPageStarted: (String url) {},
44+
onPageFinished: (String url) {},
45+
onWebResourceError: (WebResourceError error) {},
46+
onNavigationRequest: (NavigationRequest request) {
47+
if (request.url.startsWith('https://www.hackernews.com/')) {
48+
return NavigationDecision.prevent;
49+
}
50+
return NavigationDecision.navigate;
51+
},
52+
),
53+
)
54+
..loadRequest(Uri.parse('https://hackernews.com'));
55+
56+
// Android-specific configuration
57+
if (webController.platform is AndroidWebViewController) {
58+
AndroidWebViewController.enableDebugging(true);
59+
(webController.platform as AndroidWebViewController)
60+
.setMediaPlaybackRequiresUserGesture(false);
61+
}
62+
63+
controller = webController;
64+
}
3565

3666
@override
3767
Widget build(BuildContext context) {

demo-app/pubspec.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -940,7 +940,7 @@ packages:
940940
source: hosted
941941
version: "4.8.0"
942942
webview_flutter_android:
943-
dependency: transitive
943+
dependency: "direct main"
944944
description:
945945
name: webview_flutter_android
946946
sha256: f42447ca49523f11d8f70abea55ea211b3cafe172dd7a0e7ac007bb35dd356dc
@@ -956,7 +956,7 @@ packages:
956956
source: hosted
957957
version: "2.10.0"
958958
webview_flutter_wkwebview:
959-
dependency: transitive
959+
dependency: "direct main"
960960
description:
961961
name: webview_flutter_wkwebview
962962
sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb"

demo-app/pubspec.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,9 @@ environment:
1919
# the latest version available on pub.dev. To see which dependencies have newer
2020
# versions available, run `flutter pub outdated`.
2121
dependencies:
22-
webview_flutter: ^4.5.0
22+
webview_flutter: ^4.8.0
23+
webview_flutter_android:
24+
webview_flutter_wkwebview:
2325
carousel_slider: ^5.0.0
2426
permission_handler: ^11.3.1
2527
url_launcher: ^6.3.0

0 commit comments

Comments
 (0)