- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为Flutter Web中的Playstore Application Badge创建HtmlElementView吗?
我尝试了以下提到的here
Widget _getAppStoreBadgeView() {
final NodeValidatorBuilder _htmlValidator =
new NodeValidatorBuilder.common()
..allowElement('a', attributes: ['data-target', 'data-toggle'])
..allowElement('button', attributes: ['data-target', 'data-toggle']);
ui.platformViewRegistry.registerViewFactory("idid", (int viewId) {
final element = DivElement()
..setInnerHtml(r"""
<a href='https://play.google.com/store/apps/details?id=com.shahxad.evendor&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'/></a>
""", validator: _htmlValidator)
..style.width = "100%"
..style.height = "100%"
..style.border = 'none';
return element;
});
return Container(
child: HtmlElementView(viewType: "idid"),
height: 150,
width: 400,
);
}
但是它不起作用,因为我越来越像这样。
Removing disallowed attribute
html_dart2js.dart:39901 Removing disallowed attribute <A href="https://play.google.com/store/apps/details?id=com.shahxad.flutter_tex_example&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1">
html_dart2js.dart:39901 Removing disallowed attribute <IMG src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png">
最佳答案
将 dart:html 库中的NodeValidatorBuilder
与预定义规则allowHtml5
,allowNavigation
,allowImages
一起使用,并定义ItemUrlPolicy
类以允许从生成的 html -code进行导航。
import 'dart:html' as html;
import 'dart:ui' as ui;
import 'package:flutter/material.dart';
class ItemUrlPolicy implements html.UriPolicy {
RegExp regex = RegExp(r'(?:http://|https://)?.*');
bool allowsUri(String uri) {
return regex.hasMatch(uri);
}
}
class MyWidget extends StatefulWidget {
@override
MyWidgetState createState() => MyWidgetState();
}
class MyWidgetState extends State<MyWidget> {
html.DivElement _element;
@override
void initState() {
super.initState();
_element = html.DivElement()
..appendHtml("""
<a href='https://play.google.com/store/apps/details?id=com.shahxad.evendor&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'>
<img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png'/>
</a>
""",
validator: html.NodeValidatorBuilder()
..allowHtml5(uriPolicy: ItemUrlPolicy())
..allowNavigation(ItemUrlPolicy())
..allowImages(ItemUrlPolicy()));
// ignore: undefined_prefixed_name
ui.platformViewRegistry.registerViewFactory('demo-view', (int viewId) => _element);
}
@override
Widget build(BuildContext context) {
return HtmlElementView(key: UniqueKey(), viewType: "demo-view");
}
}
关于flutter - Flutter Web,HtmlElementView, “Removing disallowed attribute”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62840032/
我试图在下面的代码中调用一个函数 (widget.onTap()) GestureDetector( onTap: () { widget.onTap() }, child: Co
这可能是一个重复的问题,因为我已经看到很多与 iframe、webview 和所有这些有关的问题,但在我研究它们时,每个问题都让我更加困惑。目前,我正在使用 WebView 小部件在我的移动应用程序中
我正在尝试为Flutter Web中的Playstore Application Badge创建HtmlElementView吗? 我尝试了以下提到的here Widget _getAppStor
我使用 Agora SDK 在 Flutter 中构建了一个视频通话应用。这仅适用于 iOS/Android,因此对于 Web 构建,我必须围绕现有的 Agora Web SDK 构建一个包装器。由于
我在 HtmlElementView 上使用了 iframeElement,而 iframeElement 上有一个错误,即 flutter 按钮无法触发 Stack 小部件上的事件,因此我将其包装到
我是一名优秀的程序员,十分优秀!