diff --git a/packages/webview_flutter/CHANGELOG.md b/packages/webview_flutter/CHANGELOG.md index 75b2bf4997fc..95aa37b09fbe 100644 --- a/packages/webview_flutter/CHANGELOG.md +++ b/packages/webview_flutter/CHANGELOG.md @@ -1,6 +1,10 @@ ## 0.3.13 * Add an optional `userAgent` property to set a custom User Agent. + +## 0.3.13+1 + +* Allow underscore in the JavaScript channel names. ## 0.3.12+1 diff --git a/packages/webview_flutter/lib/webview_flutter.dart b/packages/webview_flutter/lib/webview_flutter.dart index 97b7786de9a6..92f788eb7769 100644 --- a/packages/webview_flutter/lib/webview_flutter.dart +++ b/packages/webview_flutter/lib/webview_flutter.dart @@ -91,7 +91,7 @@ enum AutoMediaPlaybackPolicy { always_allow, } -final RegExp _validChannelNames = RegExp('^[a-zA-Z_][a-zA-Z0-9]*\$'); +final RegExp _validChannelNames = RegExp('^[a-zA-Z_][a-zA-Z0-9_]*\$'); /// A named channel for receiving messaged from JavaScript code running inside a web view. class JavascriptChannel { diff --git a/packages/webview_flutter/test/webview_flutter_test.dart b/packages/webview_flutter/test/webview_flutter_test.dart index d3f289018073..6122d0d87c42 100644 --- a/packages/webview_flutter/test/webview_flutter_test.dart +++ b/packages/webview_flutter/test/webview_flutter_test.dart @@ -454,6 +454,7 @@ void main() { final JavascriptMessageHandler noOp = (JavascriptMessage msg) {}; JavascriptChannel(name: 'Tts1', onMessageReceived: noOp); JavascriptChannel(name: '_Alarm', onMessageReceived: noOp); + JavascriptChannel(name: 'foo_bar1_', onMessageReceived: noOp); VoidCallback createChannel(String name) { return () {