我想在我的flutter应用程序中显示图像内容。我使用wordpress api。 我使用此类来显示FeaturedMedia,标题和内容
Post.fromJson(Map<String, dynamic> json)
: title = json['title']["rendered"],
excerpt = json['excerpt']["rendered"],
image = json["_embedded"]['wp:featuredmedia'][0]["media_details"]
["sizes"]["medium"]["source_url"],
date = json['date'],
content = json['content']["rendered"],
id = json['id'];
这是wordpress内容
“内容”:{ “渲染”:“总理警告国会议员,他们试图阻止无协议脱欧,损害了他与欧盟达成协议的机会。
\ n鲍里斯·约翰逊说,英国将离开欧盟10月31日“成败” –促使一些国会议员采取行动阻止英国在没有达成协议的情况下离开。
\ n但是他说,国会议员越是试图阻止无协议退欧,“越多
\ n在总理宣布他将在九月和十月暂停议会五个星期之后。
\ n约翰逊先生说,这是为了允许政府举行女王的演讲,并概述其未来的“非常令人兴奋的议程”。
\ n但批评家声称,他的意图是防止下议院采取任何行动,
\ nhttps://iraqmedianews.com/wp-content/uploads/2019/08/file-20181002-85614-vu0p6l-300x205.jpg \“ alt = \” \ “ width = \” 300 \“ height = \” 205 \“ srcset = \” https://iraqmedianews.com/wp-content/uploads/2019/08/file-20181002-85614-vu0p6l-300x205.jpg 300w,https://iraqmedianews.com/wp-content/uploads/2019/08/file-20181002-85614-vu0p6l-768x524.jpg 768w,https://iraqmedianews.com/wp-content/uploads/2019/08/file-20181002-85614-vu0p6l.jpg 926w \“ size = \”(最大宽度: 300px)100vw,3 00px \“ />
\ n”, “受保护”:false },
答案 0 :(得分:0)
一旦获得指向该图像的链接,您就可以使用Image.network
显示该图像。
示例代码及其解决方案:
String imageUrl,rawString,i,j;
[...]
// At some point of your code
rawString = json['content']["rendered"];
for(int i=0;i<rawString.length;i++) if(rawString[i]=='=' && rawString[i-1]=='t' && rawString[i-2]=='e' && rawString[i-3]=='s' && rawString[i-4]=='c' && rawString[i-5]=='r' && rawString[i-6]=='s')
for(j=i+3;(rawString[i]=='.' && (rawString.substring(j,j+4)=="jpg")||rawString.substring(j,j+4)=="png");j++)
imageUrl = rawString.substring(i,j+4);
[...]
// The place where you want to display your widget
Image.network(
imageUrl, // Can add more attributes
);
我刚刚使用逻辑AND来有效地找到'srcset =',然后尝试通过查找文件扩展名将链接作为子字符串获得。
它可能无法在所有情况下都有效,但是总有总有没有要解决的。
如果您面临其他类似问题,并且没有时间 使用Flutter开发的
html
包来实现自己的逻辑 官方开发团队。或者,您甚至可以引用这两个软件包中的一个(自 您使用wordpress的工作),