Skip to content

Commit c71ebc9

Browse files
authored
Merge pull request #1 from FlafyDev/webview_flutter_web_encoding
Webview flutter web encoding
2 parents 486071d + e0b13de commit c71ebc9

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

packages/webview_flutter/webview_flutter_web/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.1.0+4
2+
3+
* Fixes unreliable encoding of HTML to the iframe element.
4+
15
## 0.1.0+3
26

37
* Minor fixes for new analysis options.

packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// found in the LICENSE file.
44

55
import 'dart:async';
6+
import 'dart:convert';
67
import 'dart:html';
78
import 'package:flutter/foundation.dart';
89
import 'package:flutter/gestures.dart';
@@ -183,7 +184,11 @@ class WebWebViewPlatformController implements WebViewPlatformController {
183184
String? baseUrl,
184185
}) async {
185186
// ignore: unsafe_html
186-
_element.src = 'data:text/html,${Uri.encodeFull(html)}';
187+
_element.src = Uri.dataFromString(
188+
html,
189+
mimeType: 'text/html',
190+
encoding: Encoding.getByName('utf-8'),
191+
).toString();
187192
}
188193

189194
@override
@@ -199,8 +204,11 @@ class WebWebViewPlatformController implements WebViewPlatformController {
199204
final String contentType =
200205
httpReq.getResponseHeader('content-type') ?? 'text/html';
201206
// ignore: unsafe_html
202-
_element.src =
203-
'data:$contentType,${Uri.encodeFull(httpReq.responseText ?? '')}';
207+
_element.src = Uri.dataFromString(
208+
httpReq.responseText ?? '',
209+
mimeType: contentType,
210+
encoding: Encoding.getByName('utf-8'),
211+
).toString();
204212
}
205213

206214
@override

packages/webview_flutter/webview_flutter_web/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: webview_flutter_web
22
description: A Flutter plugin that provides a WebView widget on web.
33
repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter_web
44
issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
5-
version: 0.1.0+3
5+
version: 0.1.0+4
66

77
environment:
88
sdk: ">=2.14.0 <3.0.0"

0 commit comments

Comments
 (0)