[webview_flutter]Allow specifying a navigation delegate(Android and Dart).#1236
[webview_flutter]Allow specifying a navigation delegate(Android and Dart).#1236amirh merged 12 commits intoflutter:masterfrom
Conversation
...ew_flutter/android/src/main/java/io/flutter/plugins/webviewflutter/FlutterWebViewClient.java
Show resolved
Hide resolved
| _toasterJavascriptChannel(context), | ||
| ].toSet(), | ||
| navigationDelegate: (NavigationRequest request) { | ||
| if (request.url == 'https://www.youtube.com/') { |
|
|
||
| /// Information about a navigation action that is about to be executed. | ||
| class NavigationRequest { | ||
| NavigationRequest({this.url, this.isMainFrame}); |
There was a problem hiding this comment.
consider adding some sort of benchmark to check how many public members are missing docs in the repo
There was a problem hiding this comment.
Made the constructor private, filed: flutter/flutter#28599
| class NavigationRequest { | ||
| NavigationRequest({this.url, this.isMainFrame}); | ||
|
|
||
| /// The URL a navigation is requested to. |
There was a problem hiding this comment.
this doc doesn't pass our style guide ("url" and "navigation" and "request" are in the member and class name, so that leaves just "the a is ed to" which isn't meaningful).
There was a problem hiding this comment.
Gave it another shot.
|
|
||
| @override | ||
| String toString() { | ||
| return 'NavigationRequest(url: $url, isMainFrame: $isMainFrame)'; |
There was a problem hiding this comment.
we usually use $runtimeType instead of hardcoding the type in the toString, it makes it work better when you subclass or rename the class or copy-paste the code
|
general design SGTM. |
38f735a to
e6df240
Compare
|
|
||
| const String kNavigationExamplePage = ''' | ||
| <!DOCTYPE html><html> | ||
| <head><title>Navigation Delegate Example</title></head>thanks |
This allows the app to prevent specific navigations(e.g prevent navigating to specific URLs). flutter/flutter#25329
d878bfa to
a743f8d
Compare
|
@mklim / @bparrishMines can you take a look (Ian reviewed mainly the public API). |
|
|
||
| @Override | ||
| public void error(String errorCode, String s1, Object o) { | ||
| throw new IllegalStateException("navigation "); |
There was a problem hiding this comment.
nit: extra space after navigation
| @@ -1 +1,2 @@ | |||
| org.gradle.jvmargs=-Xmx1536M | |||
| android.useAndroixX=true No newline at end of file | |||
There was a problem hiding this comment.
| android.useAndroixX=true | |
| android.useAndroidX=true |
This is the iOS implementation of the navigation delegate method channel. The Dart and Android implementations are in #1236 Splitting off the iOS to keep a reasonable change size. This PR will be merged first. flutter/flutter#25329
* commit '9017d6e7f867af278edd7e8e584d52524f37443f': (408 commits) [webview_flutter]Allow specifying a navigation delegate(Android and Dart). (flutter#1236) Allow specifying a navigation delegate (iOS implementation). (flutter#1323) Change build link in contributors site to cirrus (flutter#1327) [image_picker] Update versioning for flutter#1268 (flutter#1326) [image_picker] remove unnecessary camera permmision (flutter#1268) Exclude longPress from semantics (flutter#1324) [in_app_purchase] refactoring and tests (flutter#1322) [in_app_purchase] Adds Dart BillingClient APIs for loading purchases (flutter#1286) [connectivity] Update README.md (flutter#1201) [camera] Fixes #28350 (flutter#1261) [cloud_functions] Specify version for CocoaPod and handle null regions gracefully (flutter#1316) [in_app_purchase]retrieve receipt (flutter#1303) [firebase_analytics] Add resetAnalyticsData method (flutter#1311) trackCameraPosition is inferred from GoogleMap.onCameraMove (flutter#1314) [google_maps_flutter]ChangeNotifier is replaced with granular callbacks (flutter#1302) [video_player]Do not divide by zero (flutter#793) [firebase_dynamic_links] Version bump for firebase_dynamic_links PR flutter#1142 (flutter#1309) [firebase_dynamic_links] fix dynamic link crash when creating shortlink if warnings are null (flutter#1142) Fix typo in RewardedVideoAdd sample (flutter#927) Add my name to firebase_performance and firebase_dynamic_links owners (flutter#1300) ... # Conflicts: # packages/camera/android/src/main/java/io/flutter/plugins/camera/CameraPlugin.java # packages/camera/ios/Classes/CameraPlugin.m # packages/firebase_auth/ios/Classes/FirebaseAuthPlugin.m # packages/image_picker/android/build.gradle # packages/video_player/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java
This allows the app to prevent specific navigations(e.g prevent
navigating to specific URLs).
flutter/flutter#25329
iOS implementation in #1323