Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振Web,HtmlElementView,“;“删除不允许的属性”;_Flutter_Dart_Flutter Web - Fatal编程技术网

Flutter 颤振Web,HtmlElementView,“;“删除不允许的属性”;

Flutter 颤振Web,HtmlElementView,“;“删除不允许的属性”;,flutter,dart,flutter-web,Flutter,Dart,Flutter Web,我正在尝试为Flatter Web中的Playstore应用程序Badge创建HtmlElementView 如前所述,我尝试了以下方法 Widget\u getAppStoreBadgeView(){ 最终节点评估构建器\u htmlValidator= 新的NodeValidatorBuilder.common() …allowElement('a',属性:['data-target','data toggle'] ..allowElement('button',属性:['data-targ

我正在尝试为Flatter Web中的Playstore应用程序Badge创建HtmlElementView

如前所述,我尝试了以下方法

Widget\u getAppStoreBadgeView(){
最终节点评估构建器\u htmlValidator=
新的NodeValidatorBuilder.common()
…allowElement('a',属性:['data-target','data toggle']
..allowElement('button',属性:['data-target','data toggle']);
ui.platformViewRegistry.registerViewFactory(“idid”,(int viewId){
final元素=DivElement()
..setInnerHtml(r“”
“”,验证程序:\u htmlValidator)
..style.width=“100%”
..style.height=“100%”
..style.border='none';
返回元素;
});
返回容器(
子项:HtmlElementView(视图类型:“idid”),
身高:150,
宽度:400,
);
}
但它不工作,因为我越来越像这样

我在Chrome控制台中收到此消息

删除不允许的属性

html_dart2js.dart:39901删除不允许的属性
html_dart2js.dart:39901删除不允许的属性

使用
dart:html库中的
NodeValidatorBuilder
,使用预定义规则
allowHtml5
allowNavigation
allowmages
,并定义类
itemrlpolicy
,以允许从生成的html代码进行导航

将'dart:html'导入为html;
将“dart:ui”导入为ui;
进口“包装:颤振/材料.省道”;
类ItemUrlPolicy实现html.UriPolicy{
RegExp regex=RegExp(r'(?:http://| https://)?*);
bool allowsUri(字符串uri){
返回regex.hasMatch(uri);
}
}
类MyWidget扩展了StatefulWidget{
@凌驾
MyWidgetState createState()=>MyWidgetState();
}
类MyWidgetState扩展了状态{
html.DivElement\u元素;
@凌驾
void initState(){
super.initState();
_element=html.DivElement()
…附加HTML(“”
""",
验证器:html.NodeValidatorBuilder()
…allowHtml5(uriPolicy:ItemUrlPolicy())
…allowNavigation(ItemUrlPolicy())
..AllowImage(ItemUrlPolicy());
//忽略:未定义的\u前缀\u名称
ui.platformViewRegistry.registerViewFactory('demo-view',(int-viewId)=>\u元素);
}
@凌驾
小部件构建(构建上下文){
返回HtmlElementView(键:UniqueKey(),视图类型:“演示视图”);
}
}

谢谢,它工作起来很有魅力,但在“设备”工具栏中的“点击”模式下,它不起作用,但在“触摸”模式下可以正常工作。
  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,
    );
  }
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">