Flutter 颤振Web,HtmlElementView,“;“删除不允许的属性”;
我正在尝试为Flatter Web中的Playstore应用程序Badge创建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
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">